了解位运算
在hashmap的源码探索中,对于位运算需要了解,以前经常忘,这次记录下。
位运算即将两个数据按二进制进行运算。
1、位与运算符(&)
1、运算规则:0&0=0,1&0=0,0&1=0,1&1=1
即:两位都为“1”时,结果才为“1”。
2、“与运算”的特殊用途:
- 清零:与一个各位都为0的数相与,结果为零
2、位或运算符(|)
1、运算规则:0|0=0,1|0=1,0|1=1,1|1=1
即:只要有一位为“1”时,结果就为“1”。
2、“或运算”的特殊用途:
3、位异或运算符(^)
1、运算规则:0^0=0,1 ^0=1,0 ^1=1,1 ^1=0
即:两个相对应位为异,则该位结果为1,否则为0
2、“异或运算”的特殊用途:
- 与0相异或,保留原值:X^00000000 =X
- 使特定位翻转找一个数:例如X=01110001,使X高四位翻转,X^11110000=10000001