LZ希望得到的是什么呢? int i = 0x01;和 int i = 1;在内存上是一样的,所以没有一个int类型直接能表现出16进制,内存都是2进制,书写要自己来控制进制,0x表示16进制,0打头表示8进制,缺省是10进制,都是一个效果,也就是说不管用什么进制来书写,内存中保存的二进制都是一样的,即 int i10 = 1; 和 int i16 = 1 的效果是一样的,(i10表示10进制,i16表示16进制) 所以不存在什么 i16 = i10这样的转换所以想让输出结果表现为16进制,就要以字符串的方式输出,即Integer.toHexString或使用String.format("%08x", i)
int i = 0x01;和 int i = 1;在内存上是一样的,所以没有一个int类型直接能表现出16进制,内存都是2进制,书写要自己来控制进制,0x表示16进制,0打头表示8进制,缺省是10进制,都是一个效果,也就是说不管用什么进制来书写,内存中保存的二进制都是一样的,即
int i10 = 1; 和 int i16 = 1 的效果是一样的,(i10表示10进制,i16表示16进制)
所以不存在什么 i16 = i10这样的转换所以想让输出结果表现为16进制,就要以字符串的方式输出,即Integer.toHexString或使用String.format("%08x", i)
一个int类型的10进制的数转化为一个16进制的int类型
int型都一样的啊
有点搞不懂
十进制的是 1 2 3 4 5 6 7 8 9 0
十六进制的是 1 2 3 4 5 6 7 8 9 0 A B C D E 这后面的没法表示的 所以楼主的问题无解
是不是要转化为10进制,加减后再转换回去?
Integer.toHexString出来是String型,不能进行加减吧?
LZ的意思是对十六进制进行加减嘛,那直接用 int a = 0x01 + 0x02; 不就行了吗?此时得到的a为十进制的整数