2015-11-02 24 views
1

我不明白爲什麼一個n位2C系統編號可以通過使位bn = bn-1擴展到(n + 1)位2C系統編號,即擴展到(n +1)位複製符號位。理解二的補碼

回答

1

這是有效的,因爲我們計算二進制整數的方式。

Working right to left, the sum of each bit_i * 2^i, 
where 
    i is the range 0 to n 
    n is the number of bits 

由於每個後續0位將不會增加和的大小,它是適當的值,以墊更小的值到更廣泛的比特字段。

例如,使用5號:

4 bit:  0101 
5 bit: 00101 
6 bit: 000101 
7 bit 0000101 
8 bit: 00000101 

相反的是一種用於在二進制補系統負數真。 記住,你先計算一個人的讚美,然後從前面的例子中加入1

反轉值來獲得計算二進制補-5:

4 bit:  0101 (invert)->  1010 + 1 ->  1011 
5 bit: 00101 (invert)-> 11010 + 1 -> 11011 
6 bit: 000101 (invert)-> 111010 + 1 -> 111011 
7 bit: 0000101 (invert)-> 1111010 + 1 -> 1111011 
8 bit: 00000101 (invert)-> 11111010 + 1 -> 11111011