十六进制数字是负数吗?

pho*_*nix 9 java hex negative-number

十六进制数字是负数吗?如果是,那怎么样?
对于二进制文件,您可以签名未签名.
如何用Hex表示它们?我需要这个用于我即将开始的十六进制例程.

And*_*per 24

是.例如,您在带符号的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
Run Code Online (Sandbox Code Playgroud)

如您所见,负数的十六进制表示与二进制表示直接相关.

  • 这跟随负数的2的补码表示,因为它们将是二进制的.我知道它是签名二进制数的最广泛表示,但是,它特定于二进制,对吧?这个答案取一个基数10,执行2的恭维,并输出文字二进制输出的基数16转换.我知道"签名"基数10用负号表示,对于基数16是不一样的?-0xF不能转换为-15吗?我知道签名二进制文件需要上下文,对吗?因为1111 == -1或1111 == 15.符号会添加上下文.我从未见过签名的十六进制,我很好奇.谢谢! (2认同)

MeB*_*Guy 15

数字的高位确定它是否为负数.因此,例如int是32位长,所以如果位31是1,则它是负的.现在你如何显示该值,无论是十六进制还是十进制无关紧要.所以十六进制值就像

0x80000000
0x91345232
0xA3432032
0xBFF32042
0xC33252DD
0xE772341F
0xFFFFFFFF
Run Code Online (Sandbox Code Playgroud)

都是负数,因为最高位设置为1

       |
       v
0x8 -> 1000
0x9 -> 1001
0xA -> 1010
0xB -> 1011
0xC -> 1100
0xD -> 1101
0xE -> 1110
0xF -> 1111
Run Code Online (Sandbox Code Playgroud)


Bal*_*a R 6

是的,他们可以.它与二进制文件的解释方式相同(signed vs unsigned).


Vet*_*sin 5

您将采用二进制有符号和无符号形式,然后将其表示为十六进制,就像任何二进制数一样.