正的整数的原码、反码、补码相同
负的整数的原码、反码、补码是要计算的
7
原码:00000000000000000000000000000111
反码:00000000000000000000000000000111
补码:00000000000000000000000000000111
-7
原码:10000000000000000000000000000111
反码:111111111111111111111111111111111000(原码的符号位不变其他位按位取反就是反码)
补码:111111111111111111111111111111111001(反码+1就是补码)
整数在内存中存储的是补码,显示时是原码。
移位操作符的操作数只能是整数
移位运算符,不要移动负数位(如a>>-2),这个是标准未定义的
7 在内存中存的是:00000000000000000000000000000111
移1位后是:00000000000000000000000000001110(14)
移2位后是:00000000000000000000000000011100(28)
<<左移操作符有x2的作用
>>右移操作符:
- 算术移位(右边丢弃,左边补原符号位) 有x2的作用
- 逻辑移位(右边丢弃,左边补0)