原码、反码、补码、移码的表示
?
?若字長n為8時,那么45的二進制表示0 0101101? ,若數值X
1.原碼 [X]原,在二進制數值中,正數保持不變,負數符號位置1.
2.反碼 [X]反,的正數保持不變 , 負數對數值的絕對值每一位按位求反
3.補碼 [X]補,的正數不變,負數在反碼末位加1
4.移碼 [X]移, 在偏移2^(n-1)情況下,在補碼的基礎上首位取反 。在偏移 N 的情況下 移碼=真值 + 偏移量
?例如:其中?? 代表小數點位置
? ?+1?=? ?0 0000001(原) = 0 0000001(反) = 0 0000001(補) = 1 0000001(移)
? ?-1? =? 1 0000001(原) = 1 1111110(反) = 1 1111111(補) = 0 1111111(移)
? ?+45 =0 0101101(原) =0?0101101(反) =0?0101101(補) =1?0101101(移)
? ?-45 = 1 0101101(原) =1?1010010(反) =1?1010011(補) =0?1010011(移)
? +127 =0 1111111(原) =0 1111111(反) =0 1111111(補) =1 1111111(移)
?-127 =1 1111111(原) =1 0000000(反) =1 0000001(補) =0 0000001(移)
+0.5 =0?1000000(原)=0?1000000(反) =0?1000000(補)?
-0.5 =1?1000000(原)=1?0111111(反) =1?1000000(補)?
浮點數 的IEEE 754表示:
在十進制中,83.125 可以寫成 10^3 × 0.083125??也可以寫成 01010011.001 及 2^6 ×1.010011 .在N = 2^E × F??形式中, E稱之為 階碼??,F 稱為 尾數。 工業(yè)??IEEE 754??表示格式為
???(-1) ^S????2^E???(b0 b1 b2 b3 .... )?????,其中(-1) ^S??表示數符, S為0為正數,1 為負數
| 參數?? | 單精度? | 雙精度 |
| 字長 | 32 (4字節(jié)) | 64 (8字節(jié)) |
| 尾數長度 | 23 | 52 |
| 指數長度 | 8 | 11 |
| 指數偏移量? | +127 | ?+1023 |
| 可表示的數值范圍 | 10^-38 ~10^38 | 10^-308 ~10^308 |
在??IEEE 754? 表示中 ,階碼? = 指數? + 偏移量? ?,尾數表示成 b0 b1 b2 b3 ......其中b0為1,表示時省略。
對于 單精度的? ?83.125 ,表示成? 2^6 ×1.010011? , 指數為6 , 單精度的偏移量為 127(即2^7 -1)所以,階碼為? 6+127? ?=133? ?=( 10000101)? 尾數 為1?01001100000000000000000 ,把小數點省去得到 IEEE754表示法中的?83.125 表示 為:
? ? ? ? 0?? 10000101??01001100000000000000000
對于 單精度 176.0625? 的IEEE 754 表示:?
1)首先轉成二進制??
? ? ? ? ?
2)規(guī)格化處理
? ? ? 10110000.0001 =? 1?01100000001? ×? ?2^7
3)階碼
? ? 指數為7,單精度的偏移量127,所以階碼 在 指數7上加127,? E=7+127 = 134 ,階碼即為指數的階碼:? 10000110 .
? ? 最后,可得到? ?0?10000110?01100000001000000000000
總結
以上是生活随笔為你收集整理的原码、反码、补码、移码的表示的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: Linux C : TCP/IP 和 网
- 下一篇: 计组原理 : 计算机可靠性概述和性能评价