原碼 反碼 補碼,以及負數的位操作

2021-07-22 22:27:33 字數 954 閱讀 3729

1、

原碼:將符號位數位化了的數,其中「+」用0

表示,「-」用

1表示。

反碼:正數的反碼表示與原碼表示一樣;負數的反碼表示是原碼表示的符號位不變,數值位逐位取反。

補碼:正數的補碼表示與原碼表示一樣;負數的補碼表示是原碼表示的符號位不變,數值位逐位取反後最低位加1(反碼表示最低位加1)。

例:(假如以八位二進位制表示)

[+63]  原

=0011  1111       

反=0011  1111         

補=0011  1111

[-63]   原

=1011  1111       

反=1100  0000         

補=1100  0001

2、負數的位操作(以與為例)

(1)計算機中,無論正數還是負數,都是以其補碼形式儲存的;

(2)如果位操作後的結果最高位為「1」,說明它是負數的補碼,轉化為實際的整數時要逆操作,即-1(減一)後保持最高位不變再取反。

(3)乙個數(如b)的相反數(-b)的補碼,等於該數的補碼取反,然後加1。

比如:-5  原碼=1000 0101     反碼=1111 1010     補碼=1111 1011

5   原碼=0000 0101     反碼=0000 0101    補碼=0000 0101 

可以進一步發現,-5 & 5 = 0000 0001,同理 -6 & 6 = 0000 0010,-7 & 7 =0000 0001……

這是乙個很有用的性質,即返回(某個數的絕對值,如-6的絕對值是6)的(二進位制表示的,6的二進位制表示是0000 0110)從右往左第乙個為1(第一位為1)的所表示的整數(0000 0010)。

原碼 反碼 補碼以及負數的表示

原碼 將乙個整數,轉換成二進位制,就是其原碼。如單位元組的5的原碼為 0000 0101 5的原碼為1000 0101。反碼 正數的反碼就是其原碼 負數的反碼是將原碼中,除符號位以外,每一位取反。如單位元組的5的反碼為 0000 0101 5的反碼為1111 1010。補碼 正數的補碼就是其原碼 負...

原碼 補碼 反碼以及位運算

2 位運算 機器數是乙個數在計算機中的二進位制表示形式,機器數是帶符號的,在計算機中用乙個數的最高位 第一位 存放符號,正數為0,負數為1。例如1 帶符號即 1 在計算機中的最終表示形式為 0000 0001,依此類推 1的二進位制為 1000 0001。這種表示方式又叫做原碼,其中0的原碼為000...

原碼 反碼 補碼 負數的移位

正數的原碼 反碼 補碼都相同 負數的反碼為原碼除符號位,其他位都取反,補碼為反碼加1。正數的移位 5為例,左 右移兩位 0000 0101 左移m位 最左邊的m位將丟棄,同時在最右邊補上零 0001 0100 右移m位 最右邊的m位將丟棄,同時在最左邊補上零 0000 0001 負數的移位 由於存在...