數的機器碼表示 原碼 反碼 補碼 移碼

2021-08-17 16:03:13 字數 1237 閱讀 8181

首先區分兩個概念:真值機器碼

為了解決在計算機內部數的正、負符號和小數點運算問題,而產生了把符號位和數值位一起編碼來表示相應的數的表示方法,如原碼,反碼,補碼,移碼

1.原碼

正數:0+二進位制數

負數:1+二進位制數

2.反碼
正數:0+二進位制數

負數:1+二進位制數按位取反

3.補碼
正數:0+二進位制數

負數:1+(二進位制數按位取反,末位+1)

在定點整數機器中,數的表示範圍為|x

|<(2

n−1)

| x|

<(2

n−1)

,但n位二進位制補碼數的表示範圍是−2

n−1 −2n

−1

到2n−1−1

2 n−

1−1,

其中用[

1000

0000]原

[

1000

0000]原

來表示−2

n−1 −2n

−1

,這樣不僅僅修復了0的符號以及存在兩個編碼的問題, 而且還能夠多表示乙個最低數. 這就是為什麼8位二進位制, 使用原碼或反碼表示的範圍為[-127, +127], 而使用補碼表示的範圍為[-128, 127].

但是,同時要注意,用補碼表示的−2

n−1 −2n

−1

是沒有對應的反碼和原碼的,因為實際上是使用以前的-0的補碼來表示-128

4.移碼

正數:1+二進位制數

負數:0+(二進位制數按位取反,末位+1)

表示方法

正數負數

+1011111

-1011111

原碼0+二進位制數

1+二進位制數

01011111

11011111

反碼0+二進位制數

1+二進位制數按位取反

01011111

10100000

補碼0+二進位制數

1+(二進位制數按位取反,末位+1)

01011111

10100001

移碼1+二進位制數

0+(二進位制數按位取反,末位+1)

11011111

00100001

數的機器碼表示(原碼,反碼,補碼,移碼)

1.機器數和真值 二進位制數有正負之分,如n1 0.101101,n2 0.101101,則n1是個正數,n2是個負數。機器不能直接把符號 表示出來,為了能在計算機中表示正負數,必須引入符號位,即把正負符號也用1位二進位制數碼來表示。把符號位和數值位一起編碼來表示相應的數的表示方法包括 原碼 補碼 ...

機器碼的表示 原碼 反碼 補碼 移碼

今天做筆試題時遇到的乙個小問題 在機器碼的表示方法中,有哪些方法對0的表示方式是唯一的?毫不猶豫的選擇了補碼。後來發現我錯了,居然還有移碼這個東東。到目前為止,我們學習了十進位制 二進位制 八進位制 十六進製制等用來代表實際數值的數,稱為真值,這些數我們再日常生活中都會使用到,那麼在計算機中數值是怎...

機器碼的原碼,反碼,補碼,移碼介紹

數的機器碼表示有原碼,反碼,補碼,移碼。三者的關係如下 原碼 原碼就是數值二進位制本身,第一位表示符號位,正數符號位為0,負數的符號位為1,例 當x 100 10 x 的原碼為 x 原 01100100,當x 100 10 時,x 的原碼為 x 原 11100100,反碼 正數的反碼 原碼,負數的反...