所谓内存是由一个个字节所组成的 每个字节又是有八位组成 每位可以存放一个二进制数据(0 或1 )
一般用于嵌入式开发
位运算 &
与
0&0 0
0&1 0
1&0 0
1&1 1
例:8&3= ?
8 二进制00001000
3 二进制00000011
对应的位相&得到 00000000
结果为0
位运算 |
或
0|0 0
0|1 1
1|0 1
1|1 1
例:8|3= ?
8 二进制00001000
3 二进制00000011
对应的位相|结果为 00001011再转化为十进制
结果为11
位运算 ~
非
~8
0001000
相应的位置取反的11110111再转化为十进制
结果为247
位运算^
异或
相同去0 不同去1
8^3=?
00001000
00000011 =>
00001011得到11
8^8=0 相同为取0
位运算
左移<<
右移>>
八位的内存空间线性排列从左到右 从高位到低位
8<<1
自动补0
结果为00010000十进制 16
右移同理
运算技巧:左移几位就乘以2的几次方 右移几位除以2的几次方