原码、反码、补码的概念与计算

原码

原码,顾名思义就是现实生活中表示的码,原来的码。其中最高位为符号位,0代表正数,1代表负数

以8位二进制为例

[+1]原 = 0000 0001

[-1]原 =  1000 0001

进而,8位二进制可表示[1111 1111, 0111 1111],即[-127, 127]

反码

正数的反码,就是其本身

负数的反码,就是在原码的基础上,符号为不变,其余各位取反

同理

[+1] = [0000 0001]原 = [0000 0001]反

[-1] = [1000 0001]原 = [1111 1110]反  

计算技巧:-1 的反码 为 -126,-2的反码为-125。是不是有感觉了,数字部分就是127-i

补码

正数的补码,就是其本身

负数的补码,就是在原码的基础上,符号位不变,其余各位取反后+1,即反码+1 

同理

[+1] = [0000 0001]原 = [0000 0001]反 = [0000 0001]补

[-1] = [1000 0001]原 = [1111 1110]反 = [1111 1111]补 

 此外,[1000 0000]补   代表-128,所以用补码表示的区间为[-128, 127]

计算技巧:-1 的补码为 -127,-2的补码为-126,数字部分就是128-i

运算

原码的+和-都可以用补码的+来表示

1-1 = 1+(-1)

[0000 0001]原 - [0000 0001]原 = [0000 0001]原 + [1000 0001]原 = [0000 0001]补 + [1111 1111]补 = [0000 0000]补 = 0

 

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值