位运算操作符介绍
- & 按位与
- | 按位或
- ^ 按位异或
- ~ 按位取反
- >> 按位右移
- << 按位左移
a&b是将两个表达式的值按二进制位展开,对应的位(bit)按值进行“与”运算,结果保留在该位上。如果两数位数不同,则较短数高位补零,再运算。
9&8 转换成二进制
1001
&1000
结果是1000
【位运算总结,&,|,^,~,>>,】| 运算符
a|b是将两个表达式的值按二进制位展开,对应的位(bit)按值进行“或”运算,结果保留在该位上。如果两数位数不同,则较短数高位补零,再运算。
9|8 转换成二进制
1001
|1000
结果是1001
^ 运算符
a^b是将两个表达式的值按二进制位展开,对应的位(bit)按值进行“异或”运算,结果保留在该位上。如果两数位数不同,则较短数高位补零,再运算。
9^8 转换成二进制
1001
|1000
结果是0001
~ 运算符
单目运算符,对每一位取反
~9的运算为:
~0000000000001001
1111111111110110
所以~9=65526
>> 运算符
右移运算符>>用来把操作数的各二进位全部右移若干位,低位丢弃,高位补0(或1)。例如:
a=9; //对00001001进行右移
a>>3; //右移3位
结果是00000001
<<运算符
左移运算符<<用来把操作数的各二进位全部左移若干位,高位丢弃,低位补0。例如:
a=9; //对00001001进行左移
a<<3; //左移3位
结果是01001000(十进制72)
推荐阅读
- android|快速 AndroidX 迁移
- 基础知识|redis简介-安装部署-命令说明
- android|android ProgressBar 样式讲解
- memcmp的用法 详讲
- 【memcopy】
- 原码,反码,补码的表示范围总结
- 02|opencv 中图像的坐标系
- Oracle|Oracle SQL的硬解析和软解析