java的移位和异或运算

Posted James

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了java的移位和异或运算相关的知识,希望对你有一定的参考价值。

Java移位运算种类

基础:我们知道在Java中int类型占32位,可以表示一个正数,也可以表示一个负数。正数换算成二进制后的最高位为0,负数的二进制最高为为1
例子:
-5换算成二进制后为:1111 1111 1111 1111 1111 1111 1111 1011
负数的二进制如何换算过来的?
负数转换为二进制,就是将其相反数(正数)的补码的每一位变反(1变0,0变1)最后将变完了的数值加1,就完成了负数的补码运算。这样就变成了二进制。
5换算成二进制后为:0000 0000 0000 0000 0000 0000 0000 0000 0101

  1. 右移 >>
    正数右移,高位补0
    例子:5>>3 -->0000 0000 0000 0000 0000 0000 0000 0000 0000 -->0
    负数右移,高位补1
    例子:-5>>3 -->1111 1111 1111 1111 1111 1111 1111 1111 -->-1
  2. 无符号右移 >>>
    无符号右移,高位补0
    例子:-5>>>3 -->0001 1111 1111 1111 1111 1111 1111 1111 -->536870911
  3. 正负数左移<<
    正负数左移都是低位补0
  4. 位异或
    位异或:第一个操作数的的第n位于第二个操作数的第n位 相反,那么结果的第n为也为1,否则为0













以上是关于java的移位和异或运算的主要内容,如果未能解决你的问题,请参考以下文章

Java 位运算(移位位与或异或非)与逻辑运算

认识时间复杂度和异或运算

认识时间复杂度和异或运算

Java 位运算(移位位与或异或非)(转)

Java_位运算(移位位与或异或非)

C语言重点难点:与,或和异或