移碼

跳轉到: 導航, 搜索

計算機中的移碼

移碼(又叫增碼)是符號位取反的補碼,一般用做浮點數的階碼,引入的目的是為了保證浮點數的機器零為全0。

①移碼的定義:設由1位符號位和n位數值位組成的階碼,則 [X]移=2En + X -2n≤X ≤ 2n

例如: X=+1011 [X]移=11011 符號位「1」表示正號

X=-1011 [X]移=00101 符號位「0」表示負號

②移碼與補碼的關係: [X]移與[X]補的關係是符號位互為相反數(僅符號位不同),

例如: X=+1011 [X]補=01011 [X]移=11011

X=-1011 [X]補=10101 [X]移=00101

③移碼運算應注意的問題:

◎對移碼運算的結果需要加以修正,修正量為2En ,即對結果的符號位取反後才是移碼形式的正確結果。

◎移碼錶示中,0有唯一的編碼——1000…00,當出現000…00時(表示-2En),屬於浮點數下溢。

浮點數的運算規則

1、浮點加減法的運算步驟

設兩個浮點數 X=Mx※2Ex Y=My※2Ey

實現X±Y要用如下5步完成:

①對階操作:小階向大階看齊

②進行尾數加減運算

③規格化處理:尾數進行運算的結果必須變成規格化的浮點數,對於雙符號位的補碼尾數來說,就必須是

001×××…×× 或110×××…××的形式

若不符合上述形式要進行左規或右規處理。

④舍入操作:在執行對階或右規操作時常用「0」舍「1」入法將右移出去的尾數數值進行舍入,以確保精度。

⑤判結果的正確性:即檢查階碼是否溢出

若階碼下溢(移碼錶示是00…0),要置結果為機器0;

若階碼上溢(超過了階碼錶示的最大值)置溢出標誌。

例題:假定X=0 .0110011*211,Y=0.1101101*2-10(此處的數均為二進位) ?? 計算X+Y;

解:[X]浮: 0 1 010 1100110

[Y]浮: 0 0 110 1101101

符號位 階碼 尾數

第一步:求階差: │ΔE│=|1010-0110|=0100

第二步:對階:Y的階碼小, Y的尾數右移4位

[Y]浮變為 0 1 010 0000110 1101暫時保存

第三步:尾數相加,採用雙符號位的補碼運算

00 1100110

+00 0000110

00 1101100

第四步規格化:滿足規格化要求

第五步:舍入處理,採用0舍1入法處理

故最終運算結果的浮點數格式為: 0 1 010 1101101,

即X+Y=+0. 1101101*210

2、浮點乘除法的運算步驟

①階碼運算:階碼求和(乘法)或階碼求差(除法)

即 [Ex+Ey]移= [Ex]移+ [Ey]補

[Ex-Ey]移= [Ex]移+ [-Ey]補

②浮點數的尾數處理:浮點數中尾數乘除法運算結果要進行舍入處理

例題:X=0 .0110011*2E11,Y=0.1101101*2E-10

求X※Y

解:[X]浮: 0 1 010 1100110

[Y]浮: 0 0 110 1101101

第一步:階碼相加

[Ex+Ey]移=[Ex]移+[Ey]補=1 010+1 110=1 000

1 000為移碼錶示的0

第二步:原碼尾數相乘的結果為:

0 10101101101110

第三步:規格化處理:已滿足規格化要求,不需左規,尾數不變,階碼不變。

第四步:舍入處理:按舍入規則,加1進行修正

所以 X※Y= 0.1010111※2E+000  

生物學中的移碼

在生物學中,移碼指因為基因突變導致單個鹼基增,減造成的編碼混亂,從而導致無法正常進行鹼基互補配對,導致生物性狀的改變。

關於「移碼」的留言: Feed-icon.png 訂閱討論RSS

目前暫無留言

添加留言

更多醫學百科條目

個人工具
名字空間
動作
導航
功能菜單
工具箱