051_原码反码补码概念

1. 反码的范围

1.1. 反码表示法规定: 正数的反码与其原码相同。负数的反码是对其原码逐位取反, 但符号位除外。

1.2. 在规定中, 8位二进制码能表示的反码范围是-127~127。

1.3. -128没有反码。

2. 原码、反码、补码的范围

2.1. 8位二进制数

原码  -127~127

反码  -127~127

补码  -128~127

2.2. n位二进制数

2.3. 补码比其它码多一位, 这是为什么呢? 问题出在0上。

[+0]原码=0000 0000,   [-0]原码=1000 0000

[+0]反码=0000 0000,   [-0]反码=1111 1111

[+0]补码=0000 0000,   [-0]补码=0000 0000

你会发现, +0和-0的补码是一样的。即0的补码只有一种表示。

2.4. [-0]补码是怎么得来的?

负数的补码就是反码整体加一。符号位上的进位舍弃符号位。所以, 舍弃了符号位的补码的第一位是数值位, 不是符号位,符号位舍弃了。

2.5. 所以, 补码能表示的数的个数中, 比原码反码少了一个, 所以补码可以多表示一个真值为-128的数。

2.6. 机器中只有加法, 减法会变成补码的加法。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值