已知补码如何求原码、真值
文章目錄
- 已知補(bǔ)碼求真值
- 定點(diǎn)整數(shù)
- 正數(shù)
- 負(fù)數(shù)
- 如何求補(bǔ)碼
- 例題
- 例題1
- 例題2
- 例題3
- 定點(diǎn)小數(shù)
- 正數(shù)
- 負(fù)數(shù)
- 例題
- 例題1
- 例題2
- 例題3
已知補(bǔ)碼求真值
定點(diǎn)整數(shù)
正數(shù)
正數(shù)的原碼、補(bǔ)碼、反碼都是一樣的
負(fù)數(shù)
負(fù)數(shù)的原碼就是補(bǔ)碼的補(bǔ)碼
如何求補(bǔ)碼
最高位是符號(hào)位,符號(hào)位保持不變,其余位取反,取反后末位+1,得到的就是補(bǔ)碼
例題
例題1
[x]補(bǔ)=10101[x]_補(bǔ) = 10101 [x]補(bǔ)?=10101
-
最高位為1(10101),說明x是一個(gè)負(fù)數(shù)
-
那么[x]補(bǔ)的反碼為(符號(hào)位不變,其余按位取反):
1101011010 11010 -
[x]補(bǔ)的補(bǔ)碼為[x]補(bǔ)的反碼末位+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]補(bǔ)=00111[x]_補(bǔ) = 00111 [x]補(bǔ)?=00111
-
因?yàn)樽罡呶粸?(00111),說明x是一個(gè)正數(shù)
-
正數(shù)的原碼、反碼、補(bǔ)碼都相同
-
所以 [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]補(bǔ)=11100[x]_補(bǔ) = 11100 [x]補(bǔ)?=11100
-
最高位為1(11100),說明x是負(fù)數(shù)
-
[[x]補(bǔ)]反(x補(bǔ)碼的反碼) = 10011
-
[[x]補(bǔ)]補(bǔ)(x補(bǔ)碼的補(bǔ)碼) = [[x]補(bǔ)]反 末位+1 = 10100
-
x的真值 = -22 = -4
定點(diǎn)小數(shù)
- 定點(diǎn)小數(shù)中正數(shù)的格式為0.xxxx,負(fù)數(shù)的格式為1.xxxxx
也就是小數(shù)點(diǎn)左側(cè)的第一位是符號(hào)位
正數(shù)
正數(shù)的原碼、補(bǔ)碼、反碼都一樣
負(fù)數(shù)
負(fù)數(shù)的原碼就是補(bǔ)碼的補(bǔ)碼
例題
例題1
[x]補(bǔ)=1.1100[x]_補(bǔ) = 1.1100 [x]補(bǔ)?=1.1100
-
符號(hào)位位1(1.1100),說明x是負(fù)數(shù)
-
[[x]補(bǔ)]反 = 1.0011
-
[[x]補(bǔ)]補(bǔ) = [[x]補(bǔ)]反 末位+1 = 1.0100
-
x的真值 = -0.25
例題2
[x]補(bǔ)=0.1110[x]_補(bǔ) = 0.1110 [x]補(bǔ)?=0.1110
-
x的符號(hào)位為0(0.1110),說明x是正數(shù)
-
所以[x]原 = [x]補(bǔ) = 0.1110
-
x的真值 = 0.5 + 0.25 + 0.125 = 0.875
例題3
[x]補(bǔ)=1.0000[x]_補(bǔ) = 1.0000 [x]補(bǔ)?=1.0000
-
x的符號(hào)位為1(1.0000),說明x是負(fù)數(shù)
-
[[x]補(bǔ)]反 = 1.1111
-
[[x]補(bǔ)]補(bǔ) = [[x]補(bǔ)]反 末位+1 = 0.0000
-
x的真值為-0
總結(jié)
以上是生活随笔為你收集整理的已知补码如何求原码、真值的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: LiteCAD参考文档的学习七(图像窗口
- 下一篇: matplotlib 色带_30多种高质