为什么说移码和补码只差一个符号位

本文解析了移码和补码在计算机中如何表示浮点数的阶码,重点讲解了两者在不同情况下的转换规则和数据表示范围,强调了两者之间的区别仅在于符号位。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

移码,常用来表示浮点数的阶码。它只能表示整数
机器字长n+1n+1n+1(第1位是符号位,后n位是数值部分)时:
[X]移=2n+x(−2n<x<2n)[X]_移=2^n+x(-2^n<x<2^n)[X]=2n+x2n<x<2n
对应的补码:
−2n≤x≤0-2^n\leq x \leq02nx0时:
[X]补=2n+1+x[X]_补=2^{n+1}+x[X]=2n+1+x
因为此时真值x为负数,而符号位对应的是2n2^n2n上的数值,此时补码符号位为1(可以理解为符号位原本是10,加上一个负数之后变成了01),移码符号位为0,数值部分相同。

0≤x≤2n0\leq x \leq2^n0x2n时:
[X]补=0,x[X]_补=0,x[X]=0,x
此时补码符号位为0,而移码符号位为1,数值部分相同。

综上,相同位数的移码和补码只差一个符号位。
若字长为n+1n+1n+1,移码的数据表示范围为−2n≤x≤2n−1-2^n\leq x\leq2^n-12nx2n1,与补码的范围相同。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值