初赛复习——位运算
\(1\).分类
符号 | 含义 |
---|---|
& | 与 |
| | 或 |
^ | 异或 |
~ | 取反 |
<< | 左移 |
>> | 右移 |
\(2\).详解
\((1).\&\)(与运算)
核心:同 \(1\) 取 \(1\),其余取 \(0\)
\(Example\):
对 \(10\) 和 \(15\) 进行 \(\&\) 运算
\((10)_{10}\ =\ (1010)_2\) , \((15)_{10}\ =\ (1111)_2\)
\(1010\ \&\ 1111\ =\ 1010\)
\((1010)_2\ =\ (10)_{10}\)
故答案为 \(10\).
\((2).|\)(或运算)
核心:有 \(1\) 取 \(1\) ,同 \(0\) 取 \(0\)
\(Example\):
对 \(10\) 和 \(15\) 进行 \(|\) 运算
\((10)_{10}\ =\ (1010)_2\) , \((15)_{10}\ =\ (1111)_2\)
\(1010\ | 1111\ =\ 1111\)
\((1111)_2\ =\ (15)_{10}\)
故答案为 \(15\).
\((3).\)^ (异或运算)
核心:相同取\(0\),相异取\(1\)
\(Example\):
对 \(10\) 和 \(15\) 进行 ^ 运算
\((10)_{10}\ =\ (1010)_2\) , \((15)_{10}\ =\ (1111)_2\)
\(1010\) ^ \(1111\ =\ 0101\)
\((101)_2\ =\ (5)_{10}\)
故答案为 \(5\).
\((4).\sim\)(取反运算)
核心:\(0\to1\),\(1\to0\)
\(Example\):
对 \(10\) 进行 \(\sim\) 运算
\((10)_{10}\ =\ (1010)_2\)
\(\sim1010\ =\ 0101\)
\((101)_2\ =\ (5)_{10}\)
故答案为 \(5\)
\((5).<<\)(左移运算)
核心:所有二进制位左移,高位丢弃,低位补 \(0\)
\(Example\):
把 \(10\) 的二进制位左移 \(2\) 位
\((10)_{10}\ =\ (1010)_2\)
\(1010<<2\ =\ 101000\)
\((101000)_2\ =\ (40)_{10}\)
故答案为 \(40\)
\((6).>>\)(右移运算)
核心:所有二进制位右移,低位丢弃,正数高位补 \(0\),负数高位补 \(1\)
\(Example\):
把 \(12\) 的二进制位右移 \(2\) 位
\((12)_{10}\ =\ (1100)_2\)
\(1100>>2\ =\ 0011\)
\((11)_2\ =\ (3)_{10}\)
故答案为 \(3\)
注:每左移 \(1\) 位相当于在十进制下 \(*2\),每右移1位相当于在十进制下 \(/2\).
即 \(a>>b\ =\ a\div 2^b\)
\(a<<b\ =\ a\cdot 2^b\)