复制代码

位运算

位运算

位运算的概念:
分为逻辑位运算符 和 位移运算符

按位与

& (都 1 为 1)

  0 1 1 0 1 0 1
  1 0 1 1 0 1 1
= 0 0 1 0 0 0 1

按位或

| (有 1 为 1 )

  1 0 0 1 1 0 1
  0 1 1 0 1 0 0 
= 1 1 1 1 1 0 1  

按位异或

\(\oplus\) (不 同 为 1)

  1 0 1 0 1 0 1
  0 1 0 1 1 1 0
= 1 1 1 1 0 1 1

按位取反

~ (0 -> 1, 1 -> 0)

  1 0 1 0 1 0 1 
  ~
= 0 1 0 1 0 1 0

左移 <<

  1 0 0 1 0 1
左移一位  (相当于十进制数 * 2 ) 
1 0 0 1 0 1 0   
n <<= i; // n 左移 i 位, n = n * (2 ^ i);

右移 >>

  1 0 0 1 1 0 
右移一位   (相当于十进制数 / 2)  
    1 0 0 1 1 
n >>= i; // n 右移 i位,n = n / (2 ^ i);   
posted @ 2023-12-14 23:50  Elgina  阅读(15)  评论(0)    收藏  举报