位运算

来源:互联网 发布:java实现redis集群 编辑:程序博客网 时间:2024/05/20 20:56

相信有一部分同学对位运算的功能还不是太了解,只是听说过,现在就和博主一起来了解一下吧!

在处理整型数值时,可以直接对组成整型数值的各个位进行操作。这意味着可以使用屏蔽技术获得整数中的各个位。位运算包括:

&(“与”)、|(“或”)、^(“异或”)、~(“非”)

这些运算符在位模式下工作。例如,如果n是一个整型变量,并且用二进制表示的n从右数第四位为1,那么

int fourth=(n & 0b1000) / 0b1000;//加上前缀0b就可以写二进制数

返回1;否则返回0。通过运用2的幂次方的&运算可以将其他位屏蔽掉,而只保留其中的某一位。


另外,“>>”和“<<”运算符将二进制进行右移或左移操作。当需要建立位模式屏蔽某些位时,使用这两个运算符十分方便:

int fourth=(n & (1<<3)) >> 3;
最后,>>>运算符将用0填充高位;>>运算符用符号位填充高位。没有<<<运算符。

警告:对移位运算符右侧的参数需要进行模32的运算(除非左边的操作数是long类型,在这种情况下需要对右侧操作数模64)。例如1<<35与1<<3或8是相同的。

1 0