美文网首页
java中按位运算总结

java中按位运算总结

作者: 爱你为你做饭 | 来源:发表于2021-09-03 14:22 被阅读0次

java运算符中基本运算符运用比较多,加减乘除,&,||等运算符结合基础变量,还有一种运算符平时使用不多但是在数据结构源码和字节码使用比较多的场景中使用比较多,按位运算,现整理如下:

  1. 进制计算:数字表达一种方式,生活中常用皆是10进制,计算机表达数字或者变量则是通过二进制,其他常用还有16进制,涉及到的就是进制之间的换算。
    • 十进制到其他进制的换算:十进制数和其他进制求余,最后的值和余数值倒着串联起来就是换算后的进制数。比如十进制数16转换为2进制是10000,转换为16进制是10
    • 其他进制到十进制的换算:按位换算进制的位置减一次幂最终的和即为十进制数,比如二进制数10000=124+0*23+02^2+021+0*20 = 16+0+0+0+0 = 16,十进制 10= 116^1+016^0=16+0=16.
  2. ^:按位异或运算,数字二进制标示 从高位到低位依次比较相同为0 不同为1比如16^8计算如下:
    • 16=10000,8=1000=01000则16^8=11000=24
  3. &:按位与运算,数字二进制表示,从高位到低位依次比较都为1则为1有一个不为1则为0比如:16&8计算如下:
    • 16&8 = 10000&01000 = 00000 = 0
  4. |:按位或运算,数字二进制表示,从高位到低位依次比较有1则为1,无1则为0,比如16|8为:
    • 16|8 = 10000|01000 = 11000 = 24
  5. :按位非运算,即将数字二进制表示后翻转,位1则为0,位0则为1,即16为:
    • ~16 = ~10000 = 01111 = 15
  6. <<:左移运算:数字按照二进制表示后,左移多少位后面补0,比如16<<2为:
    • 16<<2=10000<<2=1000000 = 12^6 = 64 = 162^2 = 64.
    • 由上可知按位左移就是当前数乘以2的移动数次幂,16左移2位=16*2^2 = 64.
  7. //>>:右移运算“数字按照二进制表示后,向右移指定位数,然后前面补0,比如16>>2为:
    • 16>>2=10000>>2 = 00100 = 4 = 16/2^2 = 4
    • 由上可知按位右移运算就是当前数除以2的移动位数次幂。
      綜上可知:
    • 按位运算包括:与,或,异或,非,左移,右移几种运算。
    • 左移,右移看运算符箭头朝向,朝向那边则是那移,左移相当于乘以2的移动位数次幂,右移相当于除以2的移动位数次幂。
    • ///>>>(前面转义)和<<<是无符号移动,和上面移动相似,区别是移动后的填充不一样,正常移动填充的是符号位,无符号是不考虑符号位移动后直接填充0.java中的最左边一位是符号位。
    • 与运算都为1则为1,或运算有1则为1,异或运算同时为1才为1,非运算是1则为0.

参考文章:
java 按位运算符
hashmap中hash算法用到的按位运算
java按位有符号和无符号移动的区别

相关文章

  • java中按位运算总结

    java运算符中基本运算符运用比较多,加减乘除,&,||等运算符结合基础变量,还有一种运算符平时使用不多但是在数据...

  • Java 位运算

    首先,在Java中,运算符有以下这些: 按位与 & 按位或 | 按位异或 ^ 按位非 ~ 左移 << 右移 >> ...

  • java中位运算^,&,<<,>>,<<<,>>>总结

    出自:https://www.cnblogs.com/liaopeng/p/8436155.html

  • 位运算

    位运算小结(按位与、按位或、按位异或、取反、左移、右移) 位运算不管是在Java语言,还是在C语言中,或者其他语言...

  • JAVA按位取反运算

    按位取反是对补码进行运算,当运算完后得到是补码,然后再将补码变回原码。 例题 1.求~9的结果是什么 解:9的二进...

  • JAVA位运算等运算符总结

    JAVA位运算等运算符总结 一、概述 运算符是一种“功能”符号,用以通知 Java 进行相关的运算。 Java 语...

  • 位运算实用技巧(Java实现)

    1. Java支持的位运算符: &:按位与 |:按位或 ~:按位非(Esc下面那个键) ^:按位异或 <<:左位移...

  • Java中位运算符的运用

    位运算符分为:按位与、按位或、按位异或、左移、右移,符号表示分别是:&、|、^、<<、>>,在Java或者Andr...

  • 3.4.5位运算符

    位运算符对两个运算数中的每一个二进制位都进行运算,位运算符分类如下~:按位取反&:按位与|:按位或^:按位异或如图...

  • Java中&与&&的区别

    一、定义 Java中&叫做按位与,&&叫做短路与。 二、区别 1、&既是位运算符又是逻辑运算符,&的两侧可以是in...

网友评论

      本文标题:java中按位运算总结

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