原码补码反码

可以用原码,反码,补码三种方式来表示定点整数和定点小数。还可以用移码来表示定点整数。
若真值为x,则[x]原,[x]反,[x]补,[x]移分别表示真值所对应的原码,反码,补码,移码

反码:

若符号位为0,则原码与反码相同
若符号位为1,则数值位全部取反

若机器字长为n + 1位,反码整数的表示范围:
-(2^n - 1) <= x <= 2^n - 1(关于原点对称)

真值0有 +0 和 -0两种形式
[+0]原 = 00000000               [-0]原 = 10000000
[+0]反 = 00000000               [-0]反 = 11111111

若机器字长为 n + 1位,反码小数的表示范围:
-(1 - 2^ -n) <= x <=  1 - 2^-n (关于原点对称)

真值0有+0 和 -0两种形式

补码:

正数的补码 = 原码
负数的补码 = 反码末位 + 1(考虑进位)

[+0]原 = 00000000               [-0]原 = 10000000
[+0]反 = 00000000               [-0]反 = 11111111

[-0]的反码+1后会产生进位,所以[+0]补 = [-0]补 = 00000000 


因为补码的真值0只有一种表示状态,原码有两种状态可以表示0
那么多出来的一种表示什么呢?

定点整数补码[x]补 = 1,0000000 表示x = -2^7
若机器字长为n + 1位,补码整数的表示范围:
-2^n  <= x <= 2^n - 1 (比原码多表示一个-2^n)

定点小数补码[x]补 = 1,0000000表示x = -1
若机器字长为n + 1位,补码整数的表示范围:
-1 <= x <= 1- 2^-n  (比原码多表示一个-1)
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值