版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
一. 位运算
主要看一,二章
十进制->二进制
正数:正常 除2取余 除2取余
负数: 补码 (先把它当成正数算2进制,然后各位取反,再+1)
-1的补码全是11111
二进制->十进制
正数:正常 2的n-1次方
负数:同样 各位取反 ,再+1 然后算十进制,最后加个负号 (连着符号位 都取反,因为正数必带符号位0)
符号位: 最高位 正数0 负数 1
位运算: & | ~ >> << ^(按位异或 相同为0 不同为1)
x & 1 判断奇偶 true 奇 false 偶
x>>1 相当于 x/2
位运算的优先级很低 切记,所以关于位运算最好都套个()
<< 左移 右边补0
>> 右移 左边补符号位的副本 一个数/2 相当于 >>1(不管正负) 只适合于整型 不适合于浮点型 <<1 同理。
把一个整数减去1之后再和原来的整数进行位与运算,得到的结果相当于把整数的二进制表示中最右边的1变成了0,很多二进制的位运算用到了这个结论!!!