计算机组成原理强制类型转换规则,计算机组成原理——浮点数加减运算强制类型转换...
浮點數的加減運算
我們可以先通過十進制的浮點數加減運算步驟來類推二進制的
十進制浮點數加減運算步驟:
浮點數加減運算包括五個步驟:① 對階② 尾數加減③ 規格化④ 舍入⑤ 判溢出
例如:計算9.85211 × 1012 + 9.96007 × 1010
解:
二進制浮點數的加減運算
上面我們進行了十進制的浮點數的加減運算,下面我們可以以此類推,也按照上面五個步驟來做
直接看一個例題:已知十進制數X=?5/256、Y=+59/1024,按機器補碼浮點運算規則計算X?Y,結果用二進制表示,浮點數格式如下:階符取2位,階碼取3位,數符取2位,尾數取9位
解:
首先我們先用補碼表示階碼和尾數,
5D = 101B,1/256 = 2-8 → X = - 101 × 2-8 = - 0.101 × 2-5 = - 0.101 × 2-101
59D = 111011B,1/1024 = 2-10 → Y = + 111011 × 2-10 = + 0.111011 × 2-4 = + 0.111011 × 2-100
再轉化成補碼形式
X:11011,11.011000000
(X是負數 轉化成補碼取反+1 階碼 尾數都一樣操作)
Y:11100,00.111011000
1. 對階
使兩個數的階碼相等,小階向大階看齊,尾數毎右移一位,階碼加1
① 求階差:[ΔE]補=11011+00100=11111,知ΔE=?1
② 對階:
X:11011,11.011000000 → 11100,11. 101100000
X = - 0.0101 × 2-100
2. 尾數加減
-Y:11100,11.000101000
(求碼的負數的方法:連符號位一塊取反+1)
然后讓X加上-Y
11.101100000
+ 11.000101000
10.110001000
所以X-Y:11100, 10.110001000
3. 規格化
X-Y:11100, 10.110001000 à 11101,11.011000100
4. 舍入
無舍入
5. 判溢出
常階碼,無溢出,結果真值為2?3×(?0.1001111)2
浮點數的加減運算——舍入規則
“0”舍“1”入法:
類似于十進制數運算中的“四舍五入”法,即在尾數右移時,被移去的最高數值位為0,則舍去;被移去的最高數值位為1,則在尾數的末位加1。這樣做可能會使尾數又溢出,此時需再做一次右規。
恒置“1”法:
尾數右移時,不論丟掉的最高數值位是“1”還是“0”,都使右移后的尾數末位恒置“1”。這種方法同樣有使尾數變大和變小的兩種可能。
例如
強制類型轉換
轉化的可操作性
char → int → long → double
float → double
int → float:可能損失精度
float → int:可能溢出及損失精度
結論:范圍、精度從小到大,轉換過程沒有損失
原因:拿32位來說:
int:表示整數,范圍 -231 ~ 231-1 ,有效數字32位
float:表示整數及小數,范圍 ±[2-126 ~ 2127×(2?2?23)],有效數字23+1=24位
總結
以上是生活随笔為你收集整理的计算机组成原理强制类型转换规则,计算机组成原理——浮点数加减运算强制类型转换...的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 如何在软件里显示编译时间
- 下一篇: php 不恒等,php运算符 == 怎么