没有“十六进制格式”整数与“十进制格式”整数之类的东西。值的位/字节表示是相同的。例如,十进制值15,777,252
是十六进制值0xF0BDE4
。(您可以使用谷歌转换:搜索“15777252 in hex”)。
您可以disco
直接使用该值。如果要以十六进制表示形式打印出来,请使用Integer.toHexString()
.
关于格式。可以这样想……计算机将值表示为一系列位。举例来说,让我们选择一个随机数并使用 8 位表示它:01110101
. 使用位串来表示更大的数字会很快变得很长,因此经常使用十六进制。十六进制等效项是:65
. 按照惯例,我们通常在值之前是0x
十六进制的。这给了我们0x65
。然而,非程序员倾向于以 10 为基数(而不是 16 基数)更自然地处理。以 10 为底的相同数字是101
。
您可以通过一些代码看到这一点:
final int value = 0x65; // we can declare it in hex
final int sameValue = 101; // or in decimal
System.out.println(value); // output in base 10; prints "101"
System.out.println(Integer.toHexString(value)); // output in base 16; prints "65"
System.out.println(Integer.toBinaryString(value)); // output in base 2; prints "1100101"
System.out.println(""+(value == sameValue)); // prints "true"