關於原始碼反碼補碼的要點

2021-10-23 10:52:00 字數 919 閱讀 4773

資料在記憶體中都是以二進位制順序儲存的,每個1或0被稱為1位,在x86cpu上乙個位元組是8位,因為intel cpu的架構原因,它是按位元組倒敘儲存的。

這是因為資料有正數和反數,如果計算機用原碼相加減,那麼如果都是正數,沒有問題,如果計算**現了負數呢,也就是說,原始碼補碼反碼的就是為了簡化減法出現的,將減號化為負數後,再講負數化為補碼,進行加法運算,這時的運算就和正負數沒有關係了。

注意:這裡的正數是包括0的

原始碼:正數的原始碼最高位用來表示,負數的原始碼最高位用1來表示。

比如10的原始碼為00000000000000000000000000001010

-10的原始碼為10000000000000000000000000001010

反碼:正數的反碼和原始碼相同,負數的反碼除符號位外,其餘各位按位取反

10的反碼為00000000000000000000000000001010

-10的反碼為11111111111111111111111111110101

補碼:正數的原始碼,反碼,補碼都相同,負數的補碼等於反碼最後一位加1

10的補碼為00000000000000000000000000001010

-10的補碼為11111111111111111111111111110110

在計算機中將資料以補碼的形式儲存下來。

因為最高位只能是0,所以最大值為011111111(2)也就是127(10)

因為負數最高位為1,那麼也就是111111111?這不是-127嗎,可是最小值不是128嗎,這是什麼情況。這是因為由於在二進位制中,出現了10000000和00000000,那麼這兩個都是0?這樣不是對於資源造成了浪費嗎,從數軸的角度出發,我們把00000000作為0,而10000000呢,最終認為將他的最高位符號位既認為是符號位又認為是數值最高位,也就是-128

所以byte的最大值為127最小值為-128

原始碼 補碼 反碼

原始碼 補碼 反碼 大家都知道資料在計算機中都是按位元組來儲存了,1個位元組等於8位 1byte 8bit 而計算機只能識別0和1這兩個數,所以根據排列,1個位元組能代表256種不同的資訊,即28 0和1兩種可能,8位排列 比如定義乙個位元組大小的無符號整數 unsigned char 那麼它能表示...

原始碼,反碼,補碼

字長8位的補碼範圍是 128 127,128的補碼是10000000,0的補碼是000000,這些都是定義規定的,不能用一般的計算方法得出 補碼的設計目的是 使符號位能與有效值部分一起參加運算,從而簡化運算規則.使減法運算轉換為加法運算,進一步簡化計算機中運算器的線路設計 1 原碼 反碼和補碼的表示...

原始碼 補碼 反碼

大家都知道資料在計算機中都是按位元組來儲存了,1個位元組等於8位 1byte 8bit 而計算機只能識別0和1這兩個數,所以根據排列,1個位元組能代表256種不同的資訊,即2 8 0和1兩種可能,8位排列 比如定義乙個位元組大小的無符號整數 unsigned char 那麼它能表示的是0 255 0...