軟考筆記(1) 原碼 反碼 補碼 移碼轉換

2021-09-26 20:52:13 字數 2326 閱讀 2397

各種數值在計算機中表示的形式成為機器數,採用二進位制計數制,數的符號用0(正數)1(負數)表示,小數點隱含表示(不佔位置)。

機器數分為無符號數帶符號數,帶符號數又分為純整數純小數

純整數:對無符號數,若約定小數點的位置在機器數的最低位之後,則為純整數,如123。

純小數:對無符號數,若約定小數點的位置在機器數的最高位之前,則為純小數,如0.01。

對於帶符號數,機器數最高位用來表示正、負符號位,其中0表正號,1表示負號。

原碼定義:

反碼定義:

補碼定義:

移碼定義:

整數採用除2取餘數的方法,即用該證書除以2所得餘數從低到高的二進位制位。

小數採用乘2取整數的方法,即用該小數乘判斷如果有整數為則記為1否則為0 。

如果有整數和小數則才開分別轉換。

例1:將十進位制數(+123.123、-123.123)分別轉換為原碼、反碼、補碼、移碼(設位元組長為8)

1、原碼

a、整數

a、123 / 2 = 61(餘數為1)(低位)

b、61 / 2 = 30(餘數為1)

c、30 / 2 = 15(餘數為0)

d、15 / 2 = 7(餘數為1)

e、7/ 2 = 3(餘數為1)

f、3/ 2 = 1(餘數為1)

g、1/ 2 = 1(餘數為1)(高位)

則整數部分的二進位制為1111011

b、小數

a、0.123 * 2 = 0.246(取整為0)(低位)

b、0.246 * 2 = 0.492(取整為0)

c、0.492 * 2 = 0.984(取整為0)

d、0.984 * 2 = 1.968(取整為1)

e、1.968 * 2 = 1.936(取整為1)

f、1.936 * 2 = 1.872(取整為1)

g、1.872 * 2 = 1.744(取整為1)(高位)

則小數部分的二進位制為1111000

當位元組長為8時,+123.123的原碼為0 1111011.1111000 ,第一位為符號位,正數為0,負數為1 。

當位元組長為8時,-123.123的原碼為1 1111011.1111000 ,第一位為符號位,正數為0,負數為1 。

2、反碼

機器數的反碼可由原碼得到。若機器數為正數,則其反碼與原碼一樣;如果機器數為負數,則其反碼是對它的原碼(除符號位外)各位取反而得到的。

當位元組長為8時,+123.123的原碼為0 1111011.1111000 ,反碼為 0 1111011.1111000

當位元組長為8時,-123.123的原碼為1 1111011.1111000 ,反碼為 1 0000100.0000111

3、補碼

機器數的補碼可由原碼得到。若機器數為正數,則其補碼與原碼一樣;如果機器數為負數,則其補碼是對它的原碼(除符號位外)各位取反,再加1而得到的(也就是對其反碼再加1)。

當位元組長為8時,+123.123的原碼為0 1111011.1111000 ,補碼為 0 1111011.1111000

當位元組長為8時,-123.123的原碼為1 1111011.1111000 ,補碼為 1 0000100.0001000( 1 0000100.0000111的低位+1)

4、移碼

機器數的移碼是在數x上增加乙個偏移量來定義的,它常用於表示浮點數中的階碼。移碼和補碼的關係是符號位互為反碼。如果機器字長為n,規定該偏移量為2n-1 。

當位元組長為8時,+123.123的補碼為 0 1111011.1111000,移碼為1 1111011.1111000

當位元組長為8時,-123.123的補碼為 1 0000100.0001000,移碼為0 0000100.0001000

軟考 原碼 反碼 補碼 移碼

在計算機中,資料編碼方式可以有多種,最為常見的有原碼 反碼 補碼 移碼。在進行原碼,反碼,補碼,移碼之間的轉換的時候首先要將他們轉換為二進位制,在下面的講解中以17為例來進行講解。將17轉換為八位數的二進位制為00010001。在原碼中,將最高位用作符號位 0表示正數,1表示負數 其餘各位代表數值本...

軟考必備2 原碼 反碼 補碼和移碼

1 原碼 反碼 補碼和移碼 原碼例子如下 在原碼表示法中,最高位是符號位,0表示正號,1表示負號,其餘的n 1 位表示數值的絕對值。反碼例子如下 正數的反碼與原碼相同,負數的反碼則是其絕對值按位求反。其餘規則和原碼的一樣。補碼例子如下 正數的補碼與其原碼和反碼相同,負數的補碼則等於其反碼的末尾加1,...

軟考筆記 原碼 反碼 補碼和移碼其實很簡單

最近在備戰軟考,複習到計算機組成原理的時候,看到書中關於原碼 反碼 補碼和移碼的定義如下 n是機器字長 原碼 反碼 補碼 移碼 看完這些定義以後,我的腦袋瞬間膨脹到原來的二倍!這樣 的公式不管你記不記得住,反正我是記不住!還好以前對它們有所了解,否則看到這一堆公式恐怕我早就放棄參加軟考的念頭嘍。其實...