补码问题

1.位长:用多少位2进制数来表示一个数字,即一个数字由几个bit表示。例如:用4位二进制表示1 ,则为0001. 用8位表示1, 则为0000 0001  。两者表示的大小一样,只是在计 

算机中占中的空间不一样而已。  显而易见,4位二进制(4bit)最大值为1111,而8位二进制(8bit)最大值为1111 1111  。显然8bit能够表示的数字的范围比4bit大,故设 定不同的位长是根据我们实际需求的数字的范围来定的。

2.数字的表示法(假设用8bit表示):

最高位为符号位,0表示正数,1表示负数。

正数的原码,反码,补码相同。所以讨论原码,反码,补码的转换时,是针对负数而言的。

原码:除去符号位,用剩下的二进制位数表示数字的绝对值。例如,+5 的原码为0000 0101 -5的原码为1000 0101

                反码(针对负数而言):在原码的基础上,除了符号位外,将剩下的二进制位按位取反。 例如,-5的反码为1111 1010

补码(针对负数而言):在反码的基础上按2进制加法加1就得到补码。例如,-5的补码位1111 1011

3.0的原码 反码 补码:

原码:0分为+0,-0;故0的原码有0000 0000和1000 0000

反码:同理+0的反码0000 0000 ;-0的反码:1111 1111

补码:+0的补码:0000 0000 ;-0的补码:1111 1111+1后最高位溢出得0000 0000. 故0的补码只有一个 0000 0000


评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值