主要内容 #
- 异或(^)运算
- 左移(<<)运算
- 右移(>>)运算
1. 异或(^)运算 #
异或运算符,按二进制位进行”异或”运算。运算规则:
0^0=0; 0^1=1; 1^0=1; 1^1=0;
假设如果 A = 60,且 B = 13,现在以二进制格式表示,它们如下所示:
A = 0011 1100
B = 0000 1101
(A ^ B) 将得到 49,即为 0011 0001
“异或运算”的特殊作用:
(1)使特定位翻转 找一个数,对应X要翻转的各位,该数的对应位为1,其余位为零,此数与X对应位异或即可。
例:X=10101110,使X低4位翻转,用X ^ 0000 1111 = 1010 0001即可得到。
(2)与0相异或,保留原值 ,X ^ 0000 0000 = 1010 1110。
从上面的例题可以清楚的看到这一点。
2. 左移(<<)运算 #
二进制左移运算符。将一个运算对象的各二进制位全部左移若干位(左边的二进制位丢弃,右边补0)。
假设如果 A = 60
A << 2 将得到 240,即为 1111 0000
“左移运算”的特殊作用:
左移1位后a = a * 2;
若左移时舍弃的高位不包含1,则每左移一位,相当于该数乘以2。
3. 右移(>>)运算 #
二进制右移运算符。将一个数的各二进制位全部右移若干位,正数左补0,负数左补1,右边丢弃。
假设如果 A = 60
A >> 2 将得到 15,即为 0000 1111
-14 (即二进制的 11110010)右移两位等于 -4 (即二进制的 11111100)