(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 o1),(1 o0)
(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 = adiv 2^b)
(a<<b = acdot 2^b)