关闭

Java常用按位运算符

326人阅读 评论(0) 收藏 举报

首先,解释下什么是按位运算。按位运算是指先将运算的操作数先分解成二进制位,再根据二进制位进行运算。

我们都知道,计算机只能识别二进制数1和0。因此通常来说,按位运算比普通运算效率快很多。

Java提供的常用按位运算符:

1、按位与运算符(&):

1 & 1 = 1; 1 & 0 = 0; 0 & 1 = 0; 0 & 0 = 0;即只有当参与运算的两个对应二进制位都为1的情况下结果位才为1,否则都为0,类似于逻辑与运算符&&。

2、按位或运算符(|):

1 | 1 = 1; 1 | 0 = 1; 0 | 1 = 1; 0 | 0 = 0;即只有当参与运算的两个对应二进制位都为0的情况下结果位才为0,否则都为1,类似于逻辑或运算符||。

3、按位异或运算符(^):

1 ^ 1 = 0; 1 ^ 0 = 1; 0 ^ 1 = 1; 0 ^ 0 = 0;即只有当参与运算的两个对应二进制位为异(值不同)的情况下结果位才为1,否则为0。

4、按位取反运算符(~):

~1 = 0; ~0 = 1;这是个一元运算符,按二进制位进行“取反”运算。

5、按位左移运算符(<<):

表达式:a << n

<1>a为操作数,n为左移的位数。

<2>将a的各个二进制位左移n位,相当于丢弃a中二进制位的前n位,并向a中二进制位向后补n位。

例如:2 << 2;

2的二进制表示形式为:00000010(只保留8位,前面为0的二进制位已省略);

2左移2位后为:00001000(只保留8位,前面为0的二进制位已省略);

00001000就是2左移2位后的二进制表示结果,用十进制表示为8,即2的3次方。

<3>按位左移的规律总结:

只要操作数a是2的次幂的结果,则a << n 等效于 a  *  2的n次幂;例如:2 << 2  = (2 * 2的二次方) =  8

6、按位右移运算符(>>):

与按位左移运算符相反。

7、按位符合运算符:

a &= b 等效于a = a & b;

a |= b 等效于a = a | b;

a ^= b 等效于a = a ^ b;

a <<= b 等效于a = a << b;

a >>= b 等效于a = a >> b;

这些用法类似于java中的“+=”、“-=”、“*=”、“/=”等复合运算符。


0
0

查看评论
* 以上用户言论只代表其个人观点,不代表CSDN网站的观点或立场
    个人资料
    • 访问:2224次
    • 积分:86
    • 等级:
    • 排名:千里之外
    • 原创:4篇
    • 转载:6篇
    • 译文:0篇
    • 评论:0条
    文章分类
    文章存档