位运算符:
& //位与运算符 | //位或运算符 ~ //位非运算符 ^ //位异或运算符
位与运算规则:
8 & 3 //8与3 0 & 0 得 0 0 & 1 得 0 1 & 0 得 0 1 & 1 得 1 //对应位都是1,结果才是1 0 0 0 0 1 0 0 0 & 0 0 0 0 0 0 1 1 ———————————————————————— 0 0 0 0 0 0 0 0 // 所以 8 & 3 = 0
位或运算规则:
8 | 3 //8或3 0 | 0 得 0 0 | 1 得 1 1 | 0 得 1 1 | 1 得 1 //对应位只要有1,结果就是1 0 0 0 0 1 0 0 0 | 0 0 0 0 0 0 1 1 ———————————————————————— 0 0 0 0 1 0 1 1 // 所以 8 | 3 = 11
位非运算规则:
~8 //位非8 ~ 0 得 1 ~ 1 得 0 //位取反,位非0得1,位非1得0 ~ 0 0 0 0 1 0 0 0 —————————————————————— 1 1 1 1 0 1 1 1 // 所以 ~ 8 = 247
位异或运算规则:
8 ^ 3 //8异或3 0 ^ 0 得 0 0 ^ 1 得 1 1 ^ 0 得 1 1 ^ 1 得 0 //对应位不同时为0或者不同时为1,结果就是1,如果值相同,结果就为0 0 0 0 0 1 0 0 0 ^ 0 0 0 0 0 0 1 1 ———————————————————————— 0 0 0 0 1 0 1 1 // 所以 8 ^ 3 = 11
-------------------------------------------------------------------------------------------------------------------------------------------------------
位移运算符:
<< //左移运算符 >> //右移运算符
左移运算规则:
标签:运算,C++,运算符,异或,规则,位非,位移 From: https://www.cnblogs.com/xueshaoshan/p/16710246.html