已知补码如何求原码、真值

您所在的位置:网站首页 补码是10011000,原码是多少 已知补码如何求原码、真值

已知补码如何求原码、真值

2024-07-11 10:56| 来源: 网络整理| 查看: 265

文章目录 已知补码求真值定点整数正数负数如何求补码 例题例题1例题2例题3 定点小数正数负数例题例题1例题2例题3

已知补码求真值 定点整数 正数

正数的原码、补码、反码都是一样的

负数

负数的原码就是补码的补码

如何求补码

最高位是符号位,符号位保持不变,其余位取反,取反后末位+1,得到的就是补码

例题 例题1

[ x ] 补 = 10101 [x]_补 = 10101 [x]补​=10101

最高位为1(10101),说明x是一个负数

那么[x]补的反码为(符号位不变,其余按位取反): 11010 11010 11010

[x]补的补码为[x]补的反码末位+1 11011 11011 11011

所以x的原码为11011,真值为: − 1 × ( 1 × 2 3 + 0 × 2 2 + 1 × 2 1 + 1 × 2 0 ) = − ( 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 × 2 3 + 1 × 2 2 + 1 × 2 0 = 7 1×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

这是一个较为特殊的补码,真值为-1事实上,负数的补码就是其绝对值的补数(a+b=模,则a与b互为补数) 在这里插入图片描述


【本文地址】


今日新闻


推荐新闻


CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3