有符號數的原碼 反碼 補碼詳解

2021-09-11 12:51:21 字數 1326 閱讀 6315

有符號數 signed %d

符號位+數值位(例如:int i = +7;)

int 型別佔4個位元組,1個位元組佔8個位,int佔32個位元位

7 根據8421碼得到二進位制原碼

(0b00000000000000000000000000000111)

int 型別的表數範圍:

計算機中儲存有符號數的時候是按照補碼的形式存進去的。

正數的原碼、反碼、補碼都一樣

負數的原碼、反碼、補碼就不一樣了

-7的原碼(計算機是原碼變成補碼存進去)

(0b10000000000000000000000000000111)

-7:儲存到計算機的流程

原碼:0b10000000000000000000000000000111

反碼:-1=0b10000000000000000000000000000110

補碼:0b11111111111111111111111111111001(符號位保持不變)

-7:拿取出來的流程

​ 補碼:0b11111111111111111111111111111001

​ 反碼:-1=0b11111111111111111111111111111000

​ 原碼:0b10000000000000000000000000000111(符號位保持不變)

記憶體機構的最小定址單位——位元組,byte,

1byte==8bit(00000000)1位元組最大的數是(11111111)對應的10進製數是:

根據8421碼對應的數進行相加

128+64+32+16+8+4+2+1

得到255

最大值:4個位元組 32個最大的位元位

最大值原碼:11111111111111111111111111111111

反碼:-1=00000000000000000000000000000000

最少值的補碼:01111111111111111111111111111111=2^31-1

最少值:4個位元組 32個最小的位元位

最少值原碼:00000000000000000000000000000000

反碼:-1=10000000000000000000000000000000 (減去1只是將符號位反轉)

最大值的補碼:11111111111111111111111111111111=-2^31-1

反碼是將原碼進行減一操作,補碼,原碼都可以是進行反轉操作
計算機儲存資料流程將原碼——反碼——再補碼(儲存是補碼是反轉)

計算機拿取資料流程將補碼——反碼——再原碼(拿取是原碼是反轉)

原碼,反碼,補碼,有符號數和無符號數

請先看以下博文 原碼,反碼,補碼 詳解 c語言系列 二 有符號數和無符號數詳解 有符號數,無符號數 對於乙個二進位制數,它可以是有符號數,也可以是無符號數,具體是哪個,由 決定。比如 1000 0001無符號數 當前二進位制的大小,即1000 0001表示129 有符號數 將最左邊一位做為符號位,剩...

原碼 反碼 補碼 有符號數和無符號數運算

原碼 原碼就是符號位加上真值的絕對值,即用第一位表示符號,其餘位表示值.比如如果是8位二進位制 1 原 0000 0001 1 原 1000 0001 第一位是符號位.因為第一位是符號位,所以8位二進位制數的取值範圍就是 1111 1111 0111 1111 即 127 127 原碼是人腦最容易理...

符號數表示 原碼 反碼 補碼

計算機中的符號數有三種表示方法,即原碼 反碼和補碼。三種表示方法均有符號位和數值位兩部分,符號位都是用0表示 正 用1表示 負 而數值位,三種表示方法各不相同。在計算機系統中,數值一律用補碼來表示和儲存。原因在於,使用補碼,可以將符號位和數值域統一處理 同時,加法和減法也可以統一處理。此外,補碼與原...