位运算是对二进制位进行的运算,包括按位与(&)、按位或(|)、按位异或(^)、取反(~)、左移(<<)、右移(>>)等。
下面简单介绍如何使用:
-
按位与(&):两个相应的二进制位都为1,结果才为1,否则为0。
int a=60; // 0011 1100 int b=13; // 0000 1101 int c= a & b; // 0000 1100 即12
-
按位或(|):两个相应的二进制位有一个为1,结果就为1,否则为0。
int a=60; // 0011 1100 int b=13; // 0000 1101 int c= a | b; // 0011 1101 即61
-
按位异或(^):两个相应的二进制位值相同为0,不同为1。
int a=60; // 0011 1100 int b=13; // 0000 1101 int c= a ^ b; // 0011 1001 即49
-
取反(~):对数据的每个二进制位取反,1变0,0变1。
int a=60; // 0011 1100 int b= ~a; // 1100 0011 即-61
-
左移(<<):将二进制位向左移动,右边用0填充。
int a=60; // 0011 1100 int b= a << 2; // 1111 0000 即240
-
右移(>>):将二进制位向右移动,左边的空位置按照原来数的最高位是0还是1来决定,原来是0就填充0,原来是1就填充1。
int a=60; // 0011 1100 int b= a >> 2; // 0000 1111 即15
注意:位运算在某些特定场合下可以提高计算效率,但使用时需谨慎,防止因为错误的位操作导致的数据错误。
发布者:luotuoemo,转转请注明出处:https://www.jintuiyun.com/172964.html