位运算
位运算符是用来对二进制位进行操作的
一 左移运算和右移运算
1. 就是二进制的左移和右移。不管是几进制,最终都是转换为二进制进行左移和右移
2. 如果是十进制左移和右移,直接是该数乘以2的n次方,n为移动的为数。
例如 十进制11<<2,11转为二进制位 1011,左移2位,得二进制位 101100,转十进制位,11乘以2的2次方位 44. .32+8+4 = 44
11>>2 同理得 ,0010 得值为 2。
二 按位与&
1. 注意不要和&&弄错
2. 按位与 ,就是按照每一位进行 & 操作。当然前提是要转成二进制
3. 与操作原理,真真的真。剩下的都为假
例如十进制 10 &11,
1010
1011
得,按照每一位进行&
1010。转成十进制位10.
三 按位或|
1. 或操作原理,有真为真,无真为假
2. 执行同按位与操作
10 | 11
1010
1011
的
1011,转成10进制为 11
四 按位异或^
1. 异或原理:相同为假,不同为真
2.执行同按位与操作
10^11
1010
1011
得
0001,转成十进制位1.
五,取反~
这个比较麻烦,是通过补码的方式实现的。
总结,整数取反为= 本身的相反数-1
~11 为 -10-1 = -12
-10 的原码1000 1010,补码1111 0110取反得0000 1001,求原码0000 1001。即9
10的原码0000 1010,补码0000 1010取反得1111 0101,求原码1000 1011。即-11