已知补码如何求原码、真值
文章目錄
- 已知補碼求真值
- 定點整數
- 正數
- 負數
- 如何求補碼
- 例題
- 例題1
- 例題2
- 例題3
- 定點小數
- 正數
- 負數
- 例題
- 例題1
- 例題2
- 例題3
已知補碼求真值
定點整數
正數
正數的原碼、補碼、反碼都是一樣的
負數
負數的原碼就是補碼的補碼
如何求補碼
最高位是符號位,符號位保持不變,其余位取反,取反后末位+1,得到的就是補碼
例題
例題1
[x]補=10101[x]_補 = 10101 [x]補?=10101
-
最高位為1(10101),說明x是一個負數
-
那么[x]補的反碼為(符號位不變,其余按位取反):
1101011010 11010 -
[x]補的補碼為[x]補的反碼末位+1
1101111011 11011 -
所以x的原碼為11011,真值為:
?1×(1×23+0×22+1×21+1×20)=?(8+2+1)=?11-1 × ( 1×2^{3} + 0×2^{2} + 1×2^{1} + 1×2^{0}) \\ = -(8 + 2 + 1) = -11 ?1×(1×23+0×22+1×21+1×20)=?(8+2+1)=?11
例題2
[x]補=00111[x]_補 = 00111 [x]補?=00111
-
因為最高位為0(00111),說明x是一個正數
-
正數的原碼、反碼、補碼都相同
-
所以 [x]原 = 00111
-
x的真值為:
1×23+1×22+1×20=71×2^{3} + 1×2^{2} + 1×2^{0} = 7 1×23+1×22+1×20=7
例題3
[x]補=11100[x]_補 = 11100 [x]補?=11100
-
最高位為1(11100),說明x是負數
-
[[x]補]反(x補碼的反碼) = 10011
-
[[x]補]補(x補碼的補碼) = [[x]補]反 末位+1 = 10100
-
x的真值 = -22 = -4
定點小數
- 定點小數中正數的格式為0.xxxx,負數的格式為1.xxxxx
也就是小數點左側的第一位是符號位
正數
正數的原碼、補碼、反碼都一樣
負數
負數的原碼就是補碼的補碼
例題
例題1
[x]補=1.1100[x]_補 = 1.1100 [x]補?=1.1100
-
符號位位1(1.1100),說明x是負數
-
[[x]補]反 = 1.0011
-
[[x]補]補 = [[x]補]反 末位+1 = 1.0100
-
x的真值 = -0.25
例題2
[x]補=0.1110[x]_補 = 0.1110 [x]補?=0.1110
-
x的符號位為0(0.1110),說明x是正數
-
所以[x]原 = [x]補 = 0.1110
-
x的真值 = 0.5 + 0.25 + 0.125 = 0.875
例題3
[x]補=1.0000[x]_補 = 1.0000 [x]補?=1.0000
-
x的符號位為1(1.0000),說明x是負數
-
[[x]補]反 = 1.1111
-
[[x]補]補 = [[x]補]反 末位+1 = 0.0000
-
x的真值為-0
總結
以上是生活随笔為你收集整理的已知补码如何求原码、真值的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: LiteCAD参考文档的学习七(图像窗口
- 下一篇: matplotlib 色带_30多种高质