對原碼 反碼和補碼的理解

2022-07-22 17:30:35 字數 897 閱讀 2417

乙個位元組是8個bit位,也就是8位二進位制數。

1、正整數的原碼、反碼和補碼。

100的原碼:0110 0100

100的反碼:0110 0100

100的補碼:0110 0100

2、負整數的原碼、反碼和補碼。

-100的原碼:1110 0100

-100的反碼:1001 1011

-100的補碼:1001 1100

注:1、正數的原碼、反碼和補碼表示方式均相同,不需轉換。

2、負數轉換成二進位制數(也就是原碼)在前面要加符號位(1)。

3、負數的反碼,將原碼的各位取反,符號位不變

4、負數的補碼,將反碼加上二進位制1即可。

補碼的由來:

補碼是為了簡化減法而出現的。在我們計算減法的時候,將減號看作是負號,再將負數轉化為補碼求加法。這也是為什麼正數的原碼、反碼和補碼是一樣的原因(和正數就沒有關係)。

在計算機系統中,數值一律用補碼來表示和儲存。是因為使用補碼可以將符號位和數值域統一處理,同時加減法也可以統一處理。

例如:72 - 53 = 72 + (-53) = 

72轉化為二進位制數為:0100 1000

-53轉化為二進位制數(原碼)為: 1011 0101   反碼為: 1100 1010    補碼為:1100 1011

72 + (-53) = 0100 1000 + 1100 1011 =  0001 0011 

將二進位制數0001 0011 轉化為十進位制數為19(在計算的時候,在最高位也需要進1,但是只有8位,所以只能丟掉向前進的1位)

公式:被減數 - 減數 = 被減數 + (負的減數) = 被減數的原碼 + 負的減數的補碼 

注:十進位制負整數的轉換成二進位制,也就是對其十進位制正整數轉換成二進位制,所以十進位制負整數表示成二進位制就是其補碼形式。

原碼 反碼和補碼的理解

對於原碼 反碼和補碼有了一些理解,分享給大家 正 負號加某進製數絕對值的形式成為真值 例 x 1011 y 1011 符號數位化的數稱為機器數 機器數有四種表示方法 原碼 補碼 反碼和移碼。下面的描述新增為機器字長為 8位二進位制 最高位表示真值符號 0正,1負,且符號位不參與運算,計算機要實現原碼...

原碼 反碼 補碼的理解

1 討論原碼之前首先需要了解兩個概念 機器數和真值。a.乙個數值在計算機中的二進位制表示形式,就稱為這個數值的機器數。機器數是帶符號的,其中最高位是符號位,1表示負數,0表示正數。比如,1100 0000就是 64的機器數,即在計算機中的二進位制表示形式。同樣的,0100 0000就是64的機器數。...

原碼反碼補碼的理解

本文採用4位二進位制數的例子,從表象對原碼反碼補碼進行 旨在說明為什麼計算機底層要用補碼表示數字以及用補碼表示數字的優點,不涉及任何數學原理。4位二進位制數的原碼表示 0 1 2 3 4 5 6 7 0000 0001 0010 0011 0100 0101 0110 0111 0 1 2 3 4 ...