位运算的使用技巧

1、左移n位就是乘以2的n次方,右移n位就是除以2的n次方

2、flages特性的使用 https://www.cnblogs.com/netqq/p/9383144.html  总的来说是对于2^n 次方之间位运算和运算结果的还原和 匹配

   例如1、2、4、8 这几个数字

10进制 2进制
1 00000001
2 00000010
4 00000100
8 00001000
16 00010000

   举个例子:7=1|2|4  不信请看:00000001|00000010|00000100=00000111    

   举个例子:7&2=2    不信请看:00000111&00000010=00000010(=2) 这说明了什么,说明了  7这个值中含有 2这个值,用于确定一个数字中是否含有另外一个数字

   举个例子:7^2=5   (=1|4)  不信请看:00000111^00000010=00000101 (=5) 这说明了什么,说明了 从7中去掉了2,这用于从一个数字中去掉一个数字

   举个例子:5^2=7  不信请看:00000101^00000010=00000111(=7) 这说明了什么,互相异或后可以还原值

     举个例子:7|8=15    不信请看:00000111|00001000=00001111(=15) 这说明了什么,|运算像是加法,^运算像是减法,&运算保留较小的数仅限于2^n次方之间

     举个例子:2|4=6       不信请看 00000010|00000100=00000110   (=6) 这说明了什么,说明了一个用语言不太好描述的规则,一个非2^的偶数的计算规则,看表格找规律

14 8|4|2
12 8|4
10 8|2
6 4|2
18 16|2
20 16|4

  发现一个规律:任何一个非2^n次方的数,都修要 2^(n-1) 的数参与| 运算,例如:9 需要8 |1参与,10需要8|2  ,11需要 8|4 ,13需要8|4|1  ,14需要8|4|2

3、准备中

原文地址:https://www.cnblogs.com/netqq/p/13092680.html