java的位运算

2019-06-07  本文已影响0人  秋_落

文章发布地址:https://blog.qiuluo.xin/2018/12/31/java%E7%9A%84%E4%BD%8D%E8%BF%90%E7%AE%97/

位运算平时很少用到,或者说基本上就没有用到过,但是在某些特殊时候还是很有用的,java提供了这种运算。

位运算符包括:&(and与)、|(or或)、^(xor异或)、~(not否)、>>(右移)、<<(左移)、>>>

n为整数,下面的表达式,如果用二进制表示的n右数第4位是1则返回1,是0则返回0。

n只能为整数,n为小数编译不能通过。

// n = 0b1001, 返回1
// n = 0b10001, 返回0
int fourthBitFromRight = (n & 0b1000) / 0b1000;

以下例子也可以判断n右数第4位是否是1。

// `1<<3` 结果为`0b1000`
// n和`0b1000`做与运算,再右移3位去除后三位,得到右数第四位结果。
int fourthBitFromRight = (n & (1 << 3) >> 3);

注意: >>>运算符会用0填充高位,与>>不同,>>会用符号位填充高位。不存在<<<运算符。

警告: 移位运算符的右操作数要完成摸32的运算(除非做操作数是long类型,在这种情况下需要对又操作数模64)。

例如:1<<35的值等同于1<<3

上一篇 下一篇

猜你喜欢

热点阅读