一、简介
特性:方便且高效 注意:结果不能直接输出,要赋值给一个变量才行- 位逻辑运算符
1 | & (“与”) |
- 移位运算符
1
2<<(左移)
>>(右移)
二、位逻辑运算
1.&运算:两个数二进制对应位都为1那一位才为11 | 0&1=0; |
2.|运算:两个数二进制对应位有一者为1那一位即为1通常用于取位操作,如常取末位:num&1结果就是取num的二进制的最末位,而以此可判别num的奇偶,结果为0则为偶,结果为1则为奇
1 | 0|1=0 |
3.^运算:二进制位同则0,异则1通常用于二进制特定位上的无条件赋值,如num|1结果是把二进制最末尾强行变为1,若再在这个结果上减1,可将num变为最接近它的偶数
1 | 0^1=1 |
常有操作1:一个数num1两次异或一个数num2结果仍为num1
1 | //num1^num2^num2=num1 |
常有操作2:简单加密
1 | 原始值:int a=19880516; |
表现为该变量数据类型的上界限减该变量的值
三、位移运算
1.<<运算:将二进制位集体向左移相应位2.>>运算:将二进制位集体向右移相应位a<<b表现为a乘以2的b次方
a>>b表现为a除以2的b次方,常将>>1用于代替/2,如在二分查找,堆的插入操作中。用>>代替除法可以使得程序效率大大提高,最大公约数的二进制算法用除以2操作代替慢的取余%,效率可以提高60%。然后最小公倍数可用两数乘积除以最大公约数得到
1 | //求最大公约数 |
- ❗只需要保证 最开头的 文章属性 内容 语法正确 则会被系统自动识别 编写日期 标题 分类 和 标签 封面的属性