我有一个问题,我做的地方,我必须把这个8位有符号的二进制数字10110100转换成符号大小,1的补码,和2的补码。
对于签署的震级,我得到的数值是-76。
对于1的补码,我知道我必须翻转所有的位,所以我会得到01001011,但我的问题是,这个1的补数的第一个位是0,这意味着它是一个正数。有人能给我解释一下,如何把它变成没有前面零的负1的补数吗?
发布于 2015-11-08 20:19:19
如果您不首先说明如何解释一个位模式,那么将其转换为任何其他模式都是没有意义的。我想你的意思是你需要把这个模式解释成这三个。
因此,对于符号大小,您以第一个位作为符号,并将其余部分解释为一个无符号二进制数。结果不是-76。
对于1的补语,如果第一个位是1,你知道它是一个负数。你倒置所有的位,将结果解释为一个无符号的数字,最后在前面添加-符号。(如果第一个位为0,则跳过反转步骤,不添加符号。)
对于2的补码,过程是相同的,但是在反转比特后,添加1。
https://stackoverflow.com/questions/33598393
复制相似问题