qaq
原码
- 最左边是符号位,0为正、1为负
- 因为只有符号位控制符号,所以负数加正数会变小,负数减正数会变大,所以负数的运算会有问题
反码
- 为了解决原码不能计算负数的问题而出现的
- 正数的反码不变,负数的反码在原码的基础上,符号位不变,数值取反,0变1,1变0
- 因为
-0
的存在,跨越0
会有问题
例:
-56
- 原码:10111000
- 反码:11000111
补码
- 负数的补码是反码+1
- 正数的补码=原码=反码
- 一个字节可以表示范围为: -128~127
位运算符
<<
:左移,低位补0>>
:右移,高位补0或1。负数补1,正数补0>>>
:无符号右移,高位补0