1. 程式人生 > 其它 >二進位制 原碼 反碼 補碼 小總結

二進位制 原碼 反碼 補碼 小總結

真的是出了校園就把知識還給老師了!!! 所以需要抽空來把一些知識撿起來~~

機器數
數字在計算機中的表現形式(二進位制)叫做機器數,這個數有正負之分,在計算機中用一個數的二進位制的最高位(符號位)用來表示它的正負,其中0表示正數,1表示負數。

eg: 正數7,8位的二進位制數來表示,是00000111,而負數-7,則用10000111表示,這裡的00000111和10000111是機器數

因為第一位是符號位,所以8位二進位制數的取值範圍就是:[11111111 ~ 01111111] 即[-127 ~ 127]

真數

機器數對應的真實的值就是真數(二進位制數換算成十進位制得到的數字),對最高位(符號位)後面的二進位制數轉換成10進位制,並根據最高位來確定這個數的正負。

eg: 二進位制數快速轉換為十進位制數,有個小竅門,11111111,從右到左依次代表 1,2,4,8,16,32,64,128 把對應位置上為1的數字相加起來就是 十進位制的,比如 00001011就是1+2+8=11

原碼

原碼錶示法在數值前面增加了一位符號位(即最高位為符號位):正數該位為0,負數該位為1(0有兩種表示:+0和-0),其餘位表示數值的大小

反碼

正數的補碼反碼是其原碼本身,負數的反碼是原碼符號位保持不變,其餘位取反。

eg: 正數1的原碼是00000001,它的反碼是是其本身00000001, -1的原碼是10000001,其反碼是11111110

補碼

正數的補碼是其原碼本身,負數的補碼是在其反碼的基礎上+1。

eg: 正數1的原碼是00000001,它的補碼是其本身00000001,-1的補碼是其反碼11111110 + 1 = 11111111