計算機(jī)基礎(chǔ)理論:原碼、反碼、補(bǔ)碼、移碼(2009-04-23 00:02:36)
一、標(biāo)準(zhǔn)理論 1、原碼的定義 ①小數(shù)原碼的定義
例如: X=+0.1011 , [X]原= 01011 ②整數(shù)原碼的定義
2、補(bǔ)碼的定義 ①小數(shù)補(bǔ)碼的定義
例如: ②整數(shù)補(bǔ)碼的定義
①小數(shù)反碼的定義
②整數(shù)反碼的定義
4.移碼:移碼只用于表示浮點數(shù)的階碼,所以只用于整數(shù)。 ①移碼的定義:設(shè)由1位符號位和n位數(shù)值位組成的階碼,則 [X]移=2n + X ②移碼與補(bǔ)碼的關(guān)系: [X]移與[X]補(bǔ)的關(guān)系是符號位互為反碼, ③移碼運(yùn)算應(yīng)注意的問題: 二、補(bǔ)碼加、減運(yùn)算規(guī)則1、運(yùn)算規(guī)則[X+Y]補(bǔ)= [X]補(bǔ)+ [Y]補(bǔ)
|
高位部分積 | 低位部分積/乘數(shù) | 說明 | |||
|
1 0 1 1 | 起始情況 | |||
+) 0 0 1 1 0 1 | 乘數(shù)最低位為1,+X | ||||
|
|||||
|
|||||
|
1 1 0 1 | 1(丟) | 右移部分積和乘數(shù) | ||
+) 0 0 1 1 0 1 | 乘數(shù)最低位為1,+X | ||||
|
|||||
|
|||||
|
1 1 1 0 | 1(丟) | 右移部分積和乘數(shù) | ||
+) 0 0 0 0 0 0 | 乘數(shù)最低位為0,+0 | ||||
|
|||||
|
|||||
|
1 1 1 1 | 0(丟) | 右移部分積和乘數(shù) | ||
+) 0 0 1 1 0 1 | 乘數(shù)最低位為1,+X | ||||
|
|||||
|
|||||
|
1 1 1 1 | 1(丟) | 右移部分積和乘數(shù) | ||
部分積 | 低位部分積 附加位 | 操作說明 | |||
|
|
起始情況 | |||
+) 0 0 0 0 0 0 | 乘數(shù)最低位為1,+X | ||||
|
|||||
|
|||||
|
1 1 0 1 | 1(丟) | 右移部分積和乘數(shù) | ||
+) 1 1 0 0 1 1 | 乘數(shù)最低位為1,+X | ||||
|
|||||
|
|||||
|
1 1 1 0 | 1(丟) | 右移部分積和乘數(shù) | ||
+) 0 0 0 0 0 0 | 乘數(shù)最低位為0,+0 | ||||
|
|||||
|
|||||
|
1 1 1 1 | 0(丟) | 右移部分積和乘數(shù) | ||
+) 0 0 1 1 0 1 | 乘數(shù)最低位為1,+X | ||||
|
|||||
|
|||||
|
1 1 1 1 | 1(丟) | 右移部分積和乘數(shù) |
§2.5 浮點運(yùn)算與浮點運(yùn)算器
設(shè)兩個浮點數(shù) X=Mx※2Ex Y=My※2Ey
實現(xiàn)X±Y要用如下5步完成:
①對階操作:小階向大階看齊
②進(jìn)行尾數(shù)加減運(yùn)算
③規(guī)格化處理:尾數(shù)進(jìn)行運(yùn)算的結(jié)果必須變成規(guī)格化的浮點數(shù),對于雙符號位的補(bǔ)碼尾數(shù)來說,就必須是
001×××…×× 或110×××…××的形式
若不符合上述形式要進(jìn)行左規(guī)或右規(guī)處理。
④舍入操作:在執(zhí)行對階或右規(guī)操作時常用“0”舍“1”入法將右移出去的尾數(shù)數(shù)值進(jìn)行舍入,以確保精度。
⑤判結(jié)果的正確性:即檢查階碼是否溢出
若階碼下溢(移碼表示是00…0),要置結(jié)果為機(jī)器0;
若階碼上溢(超過了階碼表示的最大值)置溢出標(biāo)志。
例題:假定X=0 .0110011*211,Y=0.1101101*2-10(此處的數(shù)均為二進(jìn)制) ?? 計算X+Y;
解:[X]浮: 0 1 010 1100110
第一步:求階差: │ΔE│=|1010-0110|=0100
第二步:對階:Y的階碼小, Y的尾數(shù)右移4位
第三步:尾數(shù)相加,采用雙符號位的補(bǔ)碼運(yùn)算
第四步規(guī)格化:滿足規(guī)格化要求
第五步:舍入處理,采用0舍1入法處理
故最終運(yùn)算結(jié)果的浮點數(shù)格式為: 0 1 010 1101101,
即X+Y=+0. 1101101*210
①階碼運(yùn)算:階碼求和(乘法)或階碼求差(除法)
②浮點數(shù)的尾數(shù)處理:浮點數(shù)中尾數(shù)乘除法運(yùn)算結(jié)果要進(jìn)行舍入處理
例題:X=0 .0110011*211,Y=0.1101101*2-10
求X※Y
解:[X]浮: 0 1 010 1100110
第一步:階碼相加
[Ex+Ey]移=[Ex]移+[Ey]補(bǔ)=1 010+1 110=1 000
1 000為移碼表示的0
第二步:原碼尾數(shù)相乘的結(jié)果為:
0 10101101101110
第三步:規(guī)格化處理:已滿足規(guī)格化要求,不需左規(guī),尾數(shù)不變,階碼不變。
第四步:舍入處理:按舍入規(guī)則,加1進(jìn)行修正
所以 X※Y= 0.1010111※2+000
chapter two
計算機(jī)內(nèi)部,數(shù)是用二進(jìn)制表示的。二進(jìn)制數(shù)的編碼方式有補(bǔ)碼、原碼、反碼