美文网首页
java的位运算

java的位运算

作者: 秋_落 | 来源:发表于2019-06-07 14:45 被阅读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

    相关文章

      网友评论

          本文标题:java的位运算

          本文链接:https://www.haomeiwen.com/subject/qpwmxctx.html