什么是原码反码补码

学习背景

学习原码反码补码,搞懂进制是必须的,请阅读《计算机中的进制》

原码反码补码

计算机中的数据,都是以二进制补码的形式在运算,而补码则是通过反码和原码推算出来的。
正数的原反补都是相同的
负数的反码,是根据原码取反(0变1,1变0)得到的(符号位不变)
负数的补码,是根据反码的末尾+1得到的
原码反码补码
原码 -转为-> 补码:原码符号位不变,按位取反,然后再+1,最终得到补码
补码 -转为-> 原码:补码-1,然后符号位不变,按位取反,最终得到原码

快速原码和补码之间进行转换

将前后第一次出现的1之外的数据不变,内部的数据取反
原码:10000111
v
补码:11111001
v
原码:10000111

原码反码补码 byte 强转

原码反码补码

byte 强转案例

byte b = (byte) 200;
system.out.printIn(b);
1,得到200(int)的二进制
把200拆分为:128 + 64 + 8
二进制: 00000000 00000000 00000000 11001000
2,强转位byte,去掉3个字节,留一个字节
11001000
3,得到的字节是以二进制的补码形式存在,转为原码
10111000
4,将二进制原码转为十进制
10111000
v
- 0 32 16 8 0 0 0 => -56

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值