• java位运算,逻辑运算符


    位运算逻辑运算符包括: 与(&),非(~),或(|),异或(^).

    • &:  条件1&条件2  ,只有条件1和条件2都满足, 整个表达式才为真true,  只要有1个为false,整个表达式就为假false  
    • 如果条件1为假false, 条件2仍旧需要判断   
    • 除了用于逻辑条件以外,还可以做数字之间的按位与
    • &&:  条件1&条件2  ,只有条件1和条件2都满足, 整个表达式才为真true,  只要有1个为false,整个表达式就为假false  
    • 如果条件1为假false, 条件2不需要判断   
    • |:  条件1 | 条件2  ,只要有一个条件为真true,整个表达式就为真true , 如果2个条件都为假,整个表达式才为假false  
    • 如果条件1为真,条件2仍旧需要判断  
    • 除了用于逻辑条件以外,还可以做数字之间的按位或
    • ||:  条件1 || 条件2  ,只要有一个条件为真true,整个表达式就为真true , 如果2个条件都为假,整个表达式才为假false  
    • 如果条件1为真,条件2不需要判断  


      • ^: 按位异或. 参与运算的两个值,如果两个相应位相同,则结果为0,否则为1.
      • 0异或任何数等于任何数, 1异或任何数等于任何数取反, 任何数异或自己等于把自己置0

         ~: 按位取反. 0变1,1变0.   负数在内存中的表现是, 按位取反再加1.

    通过按位异或运算,可以实现两个值的交换,而不必使用临时变量.

    public class Demo3 {
        public static void main(String[] args) {
            /** 数a两次异或同一个数b(a=a^b^b)仍然为原值.*/
            int a = 100;
            int b = 666;
    
            a = a ^ b;
            b = b ^ a;
            a = a ^ b;
    
            System.out.println("a: " + a + " b " + b);
        }
    }

    可用异或进行加密


    &: 与. 当两边操作数的位同时为1时, 结果为1, 否则为0.

    位运算判断奇偶, 偶数的最低位是0,奇数的最低位是1.通过这个原理, 我们可以根据整数二进制最后一位与1比较, 判断奇偶.
    public class Demo2 {
        public static void main(String[] args) {
            /** 随机一个整数*/
            int a = new Random().nextInt();
            /** 判断奇偶性*/
            String numStr = ((a & 1) == 1) ? "奇数" : "偶数";
            System.out.println("随机数为: " + a + " 是: " + numStr);
        }
    }




     

    java移位运算符包括:

      • <<:左移位
      • >>:带符号右移
      • >>>:无符号右移

    都是相对于二进制的补码来进行移动的

    在Java语言中, 二进制数使用补码表示, 最高位为符号位, 正数的符号位为0, 负数为1.

    补码的表示规则:

      • 正数的最高位为0,其余各位代表数值本身(二进制数).
      • 对于负数,通过对该数绝对值的补码按位取反,再对整个数加1.

  • 相关阅读:
    编译安装linux内核步骤
    怎样在github上协同开发
    在JSP里使用CKEditor和CKFinder
    tomcat结合nginx使用小结
    JAVA学习笔记——(五)
    JAVA学习笔记——(四)
    JAVA学习笔记——(三)
    JAVA学习笔记——(二)
    JAVA学习笔记——(一)
    ansible
  • 原文地址:https://www.cnblogs.com/MRCH/p/11644194.html
Copyright © 2020-2023  润新知