关于int类型以16进制表示的问题
最近看关于进制转换的问题,https://blog.csdn.net/zhengTornado/article/details/84818993此为原帖。下面int-1以16进制形式表示不应该是0xffffffff吗?
public static void main(String[] args) {
int valueTen[] ={-69, -52, -86, 0, 17, 34, 51, 68, 8 5, 102, 119, -120, -103, -86, -69, -52, -35, -18, -1};
String arr[]=new String[valueTen.length];
for (int i = 0; i < valueTen.length; i++) {
String strHex = Integer.toHexString(valueTen[i]);
if(!(strHex.length()>6)){
arr[i]=strHex;
System.out.println(valueTen[i] + " [十进制]---->[十六进制] "+ "0x"+strHex);
}else{ //处理负数
String sub=strHex.substring(6, strHex.length());
arr[i]=sub;
System.out.println(valueTen[i] + " [十进制]---->[十六进制] "+ "0x" + sub);
}
}
for (int i = 0; i < arr.length; i++) {
System.out.print(arr[i]+" ");
}
}
运行结果
-69 [十进制]---->[十六进制] 0xbb
-52 [十进制]---->[十六进制] 0xcc
-86 [十进制]---->[十六进制] 0xaa
0 [十进制]---->[十六进制] 0x0
17 [十进制]---->[十六进制] 0x11
34 [十进制]---->[十六进制] 0x22
51 [十进制]---->[十六进制] 0x33
68 [十进制]---->[十六进制] 0x44
85 [十进制]---->[十六进制] 0x55
102 [十进制]---->[十六进制] 0x66
119 [十进制]---->[十六进制] 0x77
-120 [十进制]---->[十六进制] 0x88
-103 [十进制]---->[十六进制] 0x99
-86 [十进制]---->[十六进制] 0xaa
-69 [十进制]---->[十六进制] 0xbb
-52 [十进制]---->[十六进制] 0xcc
-35 [十进制]---->[十六进制] 0xdd
-18 [十进制]---->[十六进制] 0xee
-1 [十进制]---->[十六进制] 0xff
bb cc aa 0 11 22 33 44 55 66 77 88 99 aa bb cc dd ee ff