Binary 使用十六进制表示9位上的-1(10/2';s补码

Binary 使用十六进制表示9位上的-1(10/2';s补码,binary,hex,Binary,Hex,我用的是2的补码,-1(十进制)被转换成1111111(TwoCom)的第四位。第一位表示数字是负数,当我转换成十六进制时,我收到一个FF by结果 对吗 但我需要知道如何在9位上用十六进制表示-1(十进制) 我猜这会是1FF…但我不确定 有什么帮助吗?2的补码数被定义为1的补码数+1。因此,如果您有9位可用,并且您的原始数字是十进制1,即00000000 1二进制,那么1的补码是11111111 0二进制,2的补码是111111111二进制,表示-1十进制。 因此,您是对的,这是1FFhex。

我用的是2的补码,-1(十进制)被转换成1111111(TwoCom)的第四位。第一位表示数字是负数,当我转换成十六进制时,我收到一个FF by结果

对吗

但我需要知道如何在9位上用十六进制表示-1(十进制)

我猜这会是1FF…但我不确定


有什么帮助吗?

2的补码数被定义为1的补码数+1。因此,如果您有9位可用,并且您的原始数字是十进制1,即
00000000 1
二进制,那么1的补码是
11111111 0
二进制,2的补码是
111111111
二进制,表示-1十进制。

因此,您是对的,这是
1FF
hex。

对于有符号的二进制/十六进制,无论有多少位,最高有效位都是负数,其余都是正数。对于9位100=-256和FF=+255,因此总计=-1。但是,如何保存9位?如果将其存储在16位变量中,则第9位不是最高有效位是正的。我有一个状态转换图,我必须用十六进制值制作计时程序。当我验证这个时抛出了一个错误,我假设错误是十六进制的-1,因为我用16位FFF写了这个数字。它解决了,谢谢Tony:)