十六进制数永远是负数吗?如果是,那怎么办?
对于二进制文件,您将有signed和unsigned。
如何用十六进制表示它们?我需要这个来进行我即将开始的十六进制例程。
问问题
48168 次
6 回答
25
是的。例如,您将有以下带符号的 32 位二进制和十六进制表示形式:
Decimal: 1
Binary: 00000000 00000000 00000000 00000001
Hex: 00 00 00 01
Decimal: -1
Binary: 11111111 11111111 11111111 11111111
Hex: FF FF FF FF
Decimal: -2
Binary: 11111111 11111111 11111111 11111110
Hex: FF FF FF FE
如您所见,负数的十六进制表示与二进制表示直接相关。
于 2011-04-29T01:17:23.717 回答
15
数字的高位确定它是否为负数。例如,一个 int 是 32 位长,所以如果第 31 位是 1,它是负数。现在,无论是十六进制还是十进制,您如何显示该值都无关紧要。所以十六进制值像
0x80000000
0x91345232
0xA3432032
0xBFF32042
0xC33252DD
0xE772341F
0xFFFFFFFF
都是负数,因为最高位设置为 1
|
v
0x8 -> 1000
0x9 -> 1001
0xA -> 1010
0xB -> 1011
0xC -> 1100
0xD -> 1101
0xE -> 1110
0xF -> 1111
于 2011-04-29T03:21:57.793 回答
6
是的,他们可以。它与二进制文件的解释方式相同(有符号与无符号)。
于 2011-04-29T01:11:49.707 回答
5
您将采用二进制有符号和无符号形式,然后以十六进制表示它们,就像您使用任何二进制数一样。
于 2011-04-29T01:11:48.533 回答
3
一方面,为什么不呢?它只是一个位置数字系统,比如十进制。
另一方面,他们通常使用十六进制表示法来推断底层的位模式——如果数字被解释为无符号,那就更直接了。
所以答案是——它是可能的,在数学上是正确的并且在内部是一致的,但是违背了十六进制表示法的最常见目的。
于 2013-07-29T20:38:09.587 回答
1
在 Java 中,这些是Integer
数据类型的界限:
Integer.MIN_VALUE = 0x80000000;
Integer.MAX_VALUE = 0x7fffffff;
于 2015-06-29T19:32:59.200 回答