【无标题】

整数的按位取反 ,原码,反码,补码的概念

概念

整数的最高位0代表+,1代表-
例如int类型有32位,范围为-2^31~2^31,最高的那一位0代表+,1代表-
原码:
原码:将整数转换为二进制形式,就是其原码
eg:整数7
原码:00000000 00000000 00000000 00000111
eg:整数-7
原码:10000000 00000000 00000000 00000111
反码:
反码:对于正数,原码就是反码,负数的反码是将原码中除符号位以外的所有位(数值位)取反
eg:整数7
反码:00000000 00000000 00000000 00000111
eg:整数-7
反码:11111111 11111111 11111111 11111000
补码
补码:对于正数,它的补码就是其原码(原码、反码、补码都相同);负数的补码是其反码加 1
eg:整数7
补码:00000000 00000000 00000000 00000111
eg:整数-7
补码:11111111 11111111 11111111 11111001

总结:正数的原码,反码,补码都是相同的,负数的反码=原码除符号位的数值位取反,负数的补码=反码+1

整数的取反

取反的计算顺序

1、整数转为二进制(得到原码)
2、通过原码获取对应补码
3、补码取反
4、根据取反的补码计算出原码

-8取反
10000000 00000000 00000000 00001000 原码(-8的原码)
11111111 11111111 11111111 11110111 反码(原码除最高符号位取反)
11111111 11111111 11111111 11111000 补码(反码+1)
00000000 00000000 00000000 00000111 取反(得到的是取反后的补码)
00000000 00000000 00000000 00000111 反码(正数的原码、反码、补码相同)
00000000 00000000 00000000 00000111 原码(正数的原码、反码、补码相同)
得取反值7

7取反
00000000 00000000 00000000 00000111 原码
00000000 00000000 00000000 00000111 反码
00000000 00000000 00000000 00000111 补码
11111111 11111111 11111111 11111000 取反(得到的是取反后的补码)
11111111 11111111 11111111 11110111 反码(补码-1)
10000000 00000000 00000000 00001000 原码(反码除符号位取反)
得取反值-8
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值