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就不一样了!!!哪里出问题了?
你的程序在i>256时,one变成一位十六进制数了,前面缺了一个0.
在i>256时,在one前面补一个0,就行了.
完整的程序如下:(改动的地方见注释)
public class Apublic 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);
追问
我已经解决了 移位就可以了!!!
追答移位也能实现上面的功能.
如果你对我的回答感到满意,请采纳我的回答.
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 十六进制转十进制的主要内容,如果未能解决你的问题,请参考以下文章