无符号数和有符号数

无符号数

计算机的数都存档在寄存器中,寄存器位数也成为机器字长。
无符号数也就是没有符号的数,寄存器中每一位都用来存放数值。

有符号数

有符号的数,寄存器中要分出一位来表示数值的正负。

  • 机器数和真值
    正数用0表示,负数1表示

    • 整数:符号位与数值用逗号隔开
    • 小数:符号位与数值用小数点隔开
  • 原码表示法(符号位正数用0表示,负数1表示)
    整数:
    正数: 【x】原 = 0,x
    负数: 【x】原 = 2^n-x
    小数:
    正数: 【x】原 = x
    负数: 【x】原 = 1-x
    在这里插入图片描述本来说原码计算是相对简单的,但问题在于有时候明明是加法运算却要用到减法器,比如两个操作数符号不同做加法,得先求绝对值,大的减小的,结果符号以绝对值大的为准,所以才有了补码。

  • 补码表示法(符号位正数用0表示,负数1表示)
    整数:
    正数: 【x】原 = 0,x
    负数: 【x】原 = 2^n-x
    小数:
    正数: 【x】原 = x
    负数: 【x】原 = 1-x
    在这里插入图片描述补码运算有个要注意的是,他的0无论正负,补码都相同,这说明补码可以比源码、反码多表示一个负数。
    简单记为“求反加1”

  • 反码表示法(符号位正数用0表示,负数1表示)
    整数:
    正数: 【x】原 = 0,x
    负数: 【x】原 = 2^n-x
    小数:
    正数: 【x】原 = x
    负数: 【x】原 = 1-x
    在这里插入图片描述反码其实就是原码每位求反

  • 综合三种

  1. 三种表示方法最高位均为符号位,且当真值位正数的时候,三种表示方法均相同
  2. 而当真值是负数的时候,符号位都用1表示,补码是原码的求反加一,反码是原码的各位求反。
  • 移码表示法
    其实移码只跟补码相差一个符号位
    当然也可以根据公式
    【x】移 = 2^n +x
  • 2
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值