我试图将FFAD(十六进制)转换为十进制值,然后对其执行一个和两个补码 . FFAD表示为16位整数 . 当我将FFAD转换为基数2时,我得到1111111110101101 .
我的问题是我怎么知道它是否是负数?
我有二进制,现在做一些补码正常我会将最后一位从0更改为1然后翻转所有位,但作为一个16位整数我没有任何更多的可用位 . 由于第16位是1,这是否意味着它是负数?我该怎么做呢?我只是对这个问题感到困惑,任何指针都会非常感激 .
它是负面的,因为它被填充了一些 . 左边填充零,表示正数 . 例如,以下是三位数的十进制值:
011 = 3
010 = 2
001 = 1
000 = 0
111 = -1
110 = -2
101 = -3
100 = -4
注意,用1填充的数字是负数,用零填充的数字是正数 .
2的称赞的标准程序是否定你的位,然后加1 .
1111111110101101变为0000000001010010 . 然后添加1以获取0000000001010011 .
1 回答
它是负面的,因为它被填充了一些 . 左边填充零,表示正数 . 例如,以下是三位数的十进制值:
011 = 3
010 = 2
001 = 1
000 = 0
111 = -1
110 = -2
101 = -3
100 = -4
注意,用1填充的数字是负数,用零填充的数字是正数 .
2的称赞的标准程序是否定你的位,然后加1 .
1111111110101101变为0000000001010010 . 然后添加1以获取0000000001010011 .