文章目录
一. 移位操作符>> <<
操作数只能是整数
对于移位运算符,不要移动负数位,这是标准未定义的
num>>-1//ERROR
1. 整数的二进制表示
整数的二进制有3种表示:
1. 原码
1. 反码
1. 补码
最高位是符号位,0表示为正数,1表示为负数
Ps:怎么确定一个数在内存中占几位呢?
比如int型整数,占4个字节,每个字节是8比特,所以占4*8=32比特位
int 5的原码:00000000 00000000 00000000 00000101
int -5的原码:10000000 00000000 00000000 00000101
同理,char型是1个字节,就占8位
正整数 | 负整数 | |
---|---|---|
原码 | 数在内存中的二进制,最高位为0 | 最高位为1 |
补码 | 与原码相同 | 原码符号位不变,其他位按位取反 |
反码 | 与原码相同 |