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