JAVA 十六进制转十进制

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了JAVA 十六进制转十进制相关的知识,希望对你有一定的参考价值。

for (int i = 1; i < 260; i++)
byte[] cs=new byte[2];
cs[0]=(byte) (i & 0xFF);
cs[1]=(byte) ((i/256) & 0xFF);
System.out.println("cs[0]---"+cs[0]);
System.out.println("cs[1]---"+cs[1]);
String one=Integer.toHexString(cs[0]&0xFF);
String two=Integer.toHexString(cs[1]&0xFF);
System.out.println("one---"+one);
System.out.println("two---"+two);
String thr=two+one;
System.out.println(thr);
int hh=Integer.valueOf(thr,16);
System.out.println("发出的数是:"+i);
System.out.println("返回的数是:"+hh);

哪个大神给看看 为什么到了 256就不一样了!!!哪里出问题了?

参考技术A

你的程序在i>256时,one变成一位十六进制数了,前面缺了一个0.

在i>256时,在one前面补一个0,就行了.

完整的程序如下:(改动的地方见注释)

public class A 

 public static void main(String[] args) 
 
for (int i = 1; i < 260; i++)      

   byte[] cs=new byte[2];        

   cs[0]=(byte) (i & 0xFF);    

   cs[1]=(byte) ((i/256) & 0xFF);     

   System.out.println("cs[0]---"+cs[0]);    

   System.out.println("cs[1]---"+cs[1]);    

   String one=Integer.toHexString(cs[0]&0xFF);    

   String two=Integer.toHexString(cs[1]&0xFF);    

   System.out.println("one---"+one);   

   System.out.println("two---"+two);

   if(one.length()==1)one="0"+one;//这里加一句

   String thr=two+one;    

   System.out.println(thr);    

   int hh=Integer.valueOf(thr,16);    

   System.out.println("发出的数是:"+i);    

   System.out.println("返回的数是:"+hh);  

  

 

追问

我已经解决了 移位就可以了!!!

追答

移位也能实现上面的功能.
如果你对我的回答感到满意,请采纳我的回答.

参考技术B 10进制适合人类使用

16进制适合编译器使用和底层程序员,因为和二进制对应着,比如汇编语言

二进制适合CPU使用,因为所有的数据和代码最终都是二进制的。

窍门没有,常见的记住就行了。

8进制我很少见到
请采纳。

Java各进制之间的转换

十进制转成十六进制:

Integer.toHexString(int i)

十进制转成八进制

Integer.toOctalString(int i)

十进制转成二进制

Integer.toBinaryString(int i)

十六进制转成十进制

Integer.valueOf("FFFF",16).toString()

八进制转成十进制

Integer.valueOf("876",8).toString()

二进制转十进制

Integer.valueOf("0101",2).toString()

以上是关于JAVA 十六进制转十进制的主要内容,如果未能解决你的问题,请参考以下文章

java 十进制转二进制!

JAVA 十六进制转十进制

java中如何把十六进制转为十进制

java 进制转换 十进制转二,八,十六进制

Java学习笔记之四java进制转化

Java十六进制转换为十进制