tft每日頭條

 > 科技

 > 計算機如何執行指令和運算數據

計算機如何執行指令和運算數據

科技 更新时间:2025-02-20 22:18:36
定點小數的編碼

用定點小數引出數值的三種編碼(原碼、補碼和反碼)方案是最方便的。

(1) 原碼表示法

原碼表示法是用機器數的最高一位代表符号,其餘各位給出數值絕對值的表示方法。其定義為:

計算機如何執行指令和運算數據(計算機數據表示及運算方法)1

例如, X= 0.1011, [X]原=01011

X=-0.1011, [X]原=11011

按定義,當X=-0.1011時,[X]原= 1-X= 1.0000-(-0.1011) =11011,約定小數點在符号位和數值位之間,可省略,這裡的X為數的真值,[X]原為原碼表示的機器數,是符号位 |X|。

在原碼表示中,零有兩種表示形式,即 [ 0.0]原=00000, [-0.0]原=10000。

原碼表示的優點在于實現乘除運算的規則簡單,缺點是實現加減運算很不方便,要比較參與加減運算兩個數的符号和兩個數的絕對值的大小,才能确定運算結果的數值和符号。

(2) 反碼表示法

反碼表示法是用機器數的最高一位代表符号,數值位是對負數值各位取反的表示方法,其定義為

計算機如何執行指令和運算數據(計算機數據表示及運算方法)2

例如, X= 0.1011, [X]反=01011, X=-0.1011, [X]反=10100

在反碼表示中,零有兩個編碼,即 [ 0.0]反=00000 , [-0.0]反=11111

在當前的計算機系統中很少使用反碼,在有些書中也稱反碼為按1取模的編碼。

(3) 補碼表示法

補碼表示法是用機器數的最高一位代表符号,以下各位給出數值按2取模結果的表示方法,其定義為:

計算機如何執行指令和運算數據(計算機數據表示及運算方法)3

例如, X= 0.1011, [X]補=01011, X=-0.1011, [X]補=10101

在補碼表示中,0有唯一的編碼,即 [ 0.0]補=X =00000, [-0.0]補=2 X MOD 2 = 00000,所以定點小數多出一個編碼,可表示-1。例如,X1=X2=-0.1000,則[X1]補=[X2]補 =11000, 那麼[X X]補=11000 11000=110000,按2取模後得10000,這是-1的補碼表示。

補碼表示的機器數和它的真值的關系,是 [X]補 = 2*符号位 X,由此又得到 X=[X]補 - 2*符号位,這個結論在讨論補碼乘法是會用到。

補碼表示非常适合于進行加減法運算,對符号位與數值位同等處理,隻要結果不超出機器能表示的數值範圍,将直接得到正确的運算結果,即符号位與數值位都是正确的補碼表示,并且可以用實現加法運算的電路完成減法運算,用 [-Y]補 的辦法處理減數即可

整數的編碼

帶符号的整數也可以用原碼、補碼和反碼三種不同的編碼方法表示。

可以認為整數是小數點被設置在最低一位數值位的右邊,機器數的最高位仍被用作數的符号位。數值的表示範圍,以及整數編碼的取模值,都與表示一個數所用的二進制位數有關。

例如,對于用n 1個二進制位表示的帶符号的整數的補碼,其數值範圍是-2n≤X <2n,是用機器數的最高一位代表符号,以下各位給出數值按2n 1取模結果的表示方法,其定義為:

計算機如何執行指令和運算數據(計算機數據表示及運算方法)4

正數的原碼和反碼的定義、表示與定點小數部分說明的方法類似,這裡從略。

例如, X= 10101 [X]原 =[X]補 =[X]反 =010101

X=-10101 [X]原 =110101,[X]補 =101011,[X]反 =101010

以上兩個數的變形補碼分别為0010101和1101011。這裡的n均為5。

二進制十進制數編碼

有些計算機内有專門的十進制運算指令,支持選用十進制數的算術計算。為此要求采用一種二進制編碼的十進制數來表示數據,這種編碼被稱為BCD碼(Binary Coded Decimal),使用4位二進制編碼來表示十進制數字0~9,有多種具體實現方案,如表2.3所示。

計算機如何執行指令和運算數據(計算機數據表示及運算方法)5

按照編碼的每一位是否都有固定的權值,表中的編碼可分為有權碼和無權碼兩類。顯然,8421碼、2421碼和5211碼為有權碼;而格雷碼、餘3碼的每一位沒有确定的權,所以是無權碼。

格雷碼又稱循環碼,其編碼規則是使任何兩個相鄰的代碼隻有一個二進位的狀态不同,在D/A或A/D轉換電路中得到很好的運行結果。

用BCD碼來表示十進制數字時,1個字節存放2位十進制的數字;符号位放在最低位數字位之後,一般用C(12)表示正号,用D(13)表示負号。例如:+258被表示成258CH,占用兩個字節,-34被表示為034DH,也占用兩個字節,此處的H指出用的是十六進制數。

,

更多精彩资讯请关注tft每日頭條,我们将持续为您更新最新资讯!

查看全部

相关科技资讯推荐

热门科技资讯推荐

网友关注

Copyright 2023-2025 - www.tftnews.com All Rights Reserved