位运算符/移位运算符
运算符
- &运算符
操作数1的位 操作数2的位 &的结果位 1 1 1 1 0 0 0 1 0 0 0 0 - |运算符
操作数1的位 操作数2的位 &的结果位 1 1 1 1 0 1 0 1 1 0 0 0 - ^运算符
操作数1的位 操作数2的位 ^的结果位 1 1 0 1 0 1 0 1 1 0 0 0 - ~运算符
操作数的位 ~的结果位 1 0 0 1
移位运算符
- 原因:
主要用于高度优化的代码,在这些代码中,使用其他数据操作的开销太高了 - 示例:
int var1, var2 = 10, var3 = 2; var1 = var2 << var3;
- 结果:
var1 = 40。
具体过程如下:10的二进制值是1010,把该数值向左移动两位,得到0010 1000,即十进制中的40 - 快速记忆
向左位移:等于当前的值乘以移动位数再乘以2
var1 = var2 << var3; var1 = var2 * var3 * 2 // var1 = 10 * 2 * 2 = 40
向右位移:等于当前的值除以移动位数再除以2,最后舍去非整数部分
var1 = var2 >> var3; var1 = var2 / (var3 * 2) // var1 = 10 / ( 2 * 2) = 2.5 // 然后小数部分被丢弃var1 = 2 // 向右位移操作的时候非整数部分直接丢弃
时间: 2024-08-29 16:41:23