我有一个关于计算机中签名号码表示的基本问题 Q)正如我在8位表示中学到的那样,第7位(从0到7的计数)始终是符号位,剩下的0-6位是数字的大小
所以在负数的情况下,第7位始终为1。 那怎么-128等于1000 0000 ??
正如我们看到1000 0000这个我们假设它是一个负数并且将000 0000变为幅度..如果采用2的补码,它将变为1000 0000
在这种情况下,符号位是否会被8位寄存器覆盖..请解释一下..希望我明白我的解释
答案 0 :(得分:0)
在二进制补码中,当最高位为1时,数字为 - (倒数+ 1)
因此对于1000 0000的例子(假设我们有8位数),即 - (反转1000 0000 + 1)= - (0111 1111 + 1)= - (127 + 1)= -128
要创建一个负十进制数的二进制补码,你会做类似的事情 - 对于给定的数字反转位,然后加1。
即:对于-5,5是0000 0101(假设我们将是一个8位数)。倒置1111 1010,加1 = 1111 1011。
对于-128,128是1000 0000(忽略最高位意味着-ve为8位数的事实),反转= 0111 1111,加1 = 1000 0000。