定点数表示 原码、反码、补码、移码

  • 相对应的概念为浮点数

    • 浮点数:小数点位置不固定,浮动 9.96007 *10^2 科学计数法
    • 定点数:小数点位置固定:996.007
  • 无符号数

    • 无符号位
    • 数的绝对值
    • 0 - 2^n -1
    • 只有整数,没有小数
  • 有符号数

    • 定点整数,小数点在最后一位

    • 定点小数,小数点在符号位后

    • (尾数:数值部分)

    • 原码:用尾数表示真值的绝对值,符号位 0/1对应正/负

      • 整数范围 − ( 2 n − 1 ) < = x < = 2 n − 1 -(2^n -1) <=x<=2^n-1 (2n1)<=x<=2n1
      • 小数范围 − ( 1 − 2 − n ) < = x < = 1 − 2 − n -(1-2^{-n}) <=x<=1-2^{-n} (12n)<=x<=12n
      • 真值0有 +0 和 -0 两种形式
    • 反码:

      • 在原码的基础上
        • 符号位为0,相同,不变
        • 符号位为1,将数值位全部取反
      • 只是补码的一个中间状态,没啥用
    • 补码:

      • 正数的补码=原码
      • 负数的补码 = 反码末位+1,要考虑进位 (符号位再往前的进位丢掉)
      • 原码为1000 0000,则其反码为1111 1111,其补码为0000 0000,所以补码的0只有一种
      • 而对于补码中的1000 0000,人为规定其为 − 2 7 -2^7 27,因此补码整数范围 − 2 n < = x < = 2 n − 1 -2^n <=x<=2^n-1 2n<=x<=2n1
      • 小数的话也是一样 − 1 < = x < = 1 − 2 − n -1 <=x<=1-2^{-n} 1<=x<=12n
      • 负数补码到原码:取反,+1
      • 补码的作用
        • 例如,要实现正数+负数,需要将负数变成正数,然后做减法。而实际上加法器实现非常简单,减法器硬件实现复杂
        • 于是考虑用加法代替减法
        • 减去一个数,等于加上这个数的补数 (也就是补码)
          • 补码的原生定义: 模-负数a的绝对值 = a的补码
        • 用补码,让减法操作转变为加法操作
        • 执行加法时,符号位也一起参与运算
    • 移码

      • 只能用于表示整数
      • 在补码的基础上将符号位取反
      • 作用:
        • image-20220201153736596
        • 让计算机快速比较两个数中谁的真值更大
    • 技巧[x]补—》[-x]补: 全部取反、+1

  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值