位運算符:二進制數從低位到高位對其后進行計算。
按位與:&
運算規則:1 & 1 = 1 ,0 & 0 =0 ,1 & 0 = 0
總結:兩邊同時為1時,才得1
按位或:|
運算規則:1 | 1 = 1 ,0 | 0 =0 ,1 | 0 = 1
總結:兩邊有一個為1時,就得1
按位異或:^
運算規則:1 ^ 1 = 1 ,0 ^ 0 =1 ,1 ^ 0 = 0, 0 ^ 1=0
總結:兩邊相同時為1,不同時為0
& 0xFF的作用:取得低8位
如:數字0x1234,如果只是想取得低8位寫入 ==> 0x1234&0xff
0x1234 二進制表示為 0001 0010 0011 0100
0xff二進制表示為 1111 1111
兩個數做與操作,要將0xff補充到16位,即是高位補0
0xff ==> 0000 0000 1111 1111
0x1234 ==> 0001 0010 0011 0100
0x1234 & 0xff 可得 0000 0000 0011 0100 ==>0x34
左移 :
運算規則: 按二進制形式把所有的數字向左移動對應的位數,高位移出(舍棄),低位的
空位補零。例如0000 0000 0000 0000,這十六個位置中前八個就是高位,后八個是低位。
3 << 2 (3左移2位 )=== 0000 0011 左移2位得 0000 1100 (十進制:12)
數學意義: 在數字沒有溢出的前提下,對於正數和負數,左移一位都相當於乘以2的1次,左移n位就相當於乘以2的n次方。
3X2^2=3X4=12
右移:
(帶符號右移)
運算規則: 按二進制形式把所有的數字向右移動對應的位數,低位移出(舍棄),高位的空位補符號位,即正數補零,負數補1。https://blog.csdn.net/weixin_51358025/article/details/110430952
關於int 占幾個字節 :https://www.cnblogs.com/leifei/p/11746403.html