位运算相关
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了位运算相关相关的知识,希望对你有一定的参考价值。
位运算符/移位运算符
运算符
-
&运算符
操作数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 // 向右位移操作的时候非整数部分直接丢弃
以上是关于位运算相关的主要内容,如果未能解决你的问题,请参考以下文章