Java 位运算符

傷城~ 2022-12-26 16:17 254阅读 0赞

简介

将数值进行二进制层面上的比较再转换成十进制

种类

  1. ^(and) 转换成二进制,对应两个位置一样变为0,不一样变为1
  2. |(or) 转换成二进制,只要有一个是1,就变成1
  3. &(xor) 转换成二进制,两个位都是1,才变成1,否则变成0
  4. ~(not) 转换成二进制,原先是0的变成1,原先是1的变成0
  5. >> 转换成二进制,向右移动两位,移除的位省去
  6. << 转换成二进制,向左移动两位即后面填充两个零
  7. <<< 转换成二进制,向左移动两位,同时用 0 填充高位,而 << ,用符号填充高位,如果是正数与 << 没有区别,如果是负数,<< 的前两位为 - 占位,而 <<< 则直接用 0 填充。
  8. >>> 没有

实例代码

  1. public class Test {
  2. public static void main(String[] args) {
  3. // 1 0001
  4. // 2 0010
  5. // 3 0011
  6. // 4 0100
  7. // 5 0101
  8. // ^(and) 两个位一样变为0,不一样变为1
  9. // System.out.println(Integer.toBinaryString(5^3));
  10. // System.out.println(Integer.toBinaryString(5^4));
  11. // |(or) 只要有一个是1,就变成1
  12. // System.out.println(Integer.toBinaryString(5|3));
  13. // System.out.println(Integer.toBinaryString(5|4));
  14. // &(xor) 两个位都是1,才变成1,否则变成0
  15. // System.out.println(Integer.toBinaryString(5&3));
  16. // System.out.println(Integer.toBinaryString(5&4));
  17. //
  18. // ~(not) 原先是0的变成1,原先是1的变成0
  19. // System.out.println(Integer.toBinaryString(~3));
  20. // System.out.println(Integer.toBinaryString(~4));
  21. // << 向左移动两位即后面填充两个零
  22. // System.out.println(Integer.toBinaryString(3<<2));
  23. // System.out.println(Integer.toBinaryString(4<<2));
  24. // >> 向右移动两位,移除的位省去
  25. // System.out.println(Integer.toBinaryString(3>>2));
  26. // System.out.println(Integer.toBinaryString(-5>>1));
  27. //
  28. // // <<<
  29. // System.out.println(Integer.toBinaryString(3>>>2));
  30. // System.out.println(Integer.toBinaryString(-5>>>1));
  31. // 11111111111111111111111111111111
  32. System.out.println(-3>>2);
  33. System.out.println(Integer.toBinaryString(-3>>2));
  34. // 00111111111111111111111111111111
  35. System.out.println(-3>>>2);
  36. System.out.println(Integer.toBinaryString(-3>>>2));
  37. }
  38. }

发表评论

表情:
评论列表 (有 0 条评论,254人围观)

还没有评论,来说两句吧...

相关阅读

    相关 Java运算符

    运算符 * 把操作数转为二进制,参与运算,最终的到二进制的结果转为十进制 * & : 比较统一位置的两个数,如果一个0就是0,两个都为1才是1...

    相关 Java 运算符

    简介 将数值进行二进制层面上的比较再转换成十进制 种类 1. `^(and)` 转换成二进制,对应两个位置一样变为0,不一样变为1 2. `|(or)` 转换

    相关 Java运算符

    位运算符主要针对二进制,包括“与”、“非”、“或”、“异或”。 与运算符“&” 使用规律:两个操作数中位都为1,结果才为1,否则结果为0。 public

    相关 Java运算符

     计算机内部的数据都以二进制的形式存在,二进制数据最高位是符号位,正数是0,负数为1;正数的原码、反码、补码都是一样的,负数的反码为原码的符号位不变,其它位取反,即0->