异或运算符简单逻辑运算 a^=b

409 阅读2分钟

携手创作,共同成长!这是我参与「掘金日新计划 · 8 月更文挑战」的第9天,点击查看活动详情

名词解释

异或,英文为exclusive OR,缩写成xor [1] 

异或(xor)是一个数学运算符。它应用于逻辑运算。异或的数学符号为“⊕”,计算机符号为“xor”。其运算法则为:

a⊕b = (¬a ∧ b) ∨ (a ∧¬b)

如果a、b两个值不相同,则异或结果为1。如果a、b两个值相同,异或结果为0。

异或也叫半加[运算],其运算法则相当于不带进位的二进制加法:二进制下用1表示真,0表示假,则异或的运算法则为:0⊕0=0,1⊕0=1,0⊕1=1,1⊕1=0(同为0,异为1),这些法则与[加法]是相同的,只是不带进位,所以异或常被认作不进位加法。

异或略称为XOR、EX-OR

程序中有两种演算子:XOR、⊕。

使用方法如下

z = x ⊕ y

z = x xor y

^为按位异或运算

a^=b等价于a = ab,其中是位异或运算,即将a与b的对应位进行异或运算,同为0或者同为1时,对应位结果为0;否则为1。
假设,a的值为二进制的1010,b的值为二进制的1100,那么a^b = 0110

描述
输入两个正整数a和b,输出这两个正整数的和,差,积,商,模(若a>b则输出a-b,a/b,a%b的值反之输出b-a,b/a,b%a的值,不考虑小数,请使用int类型)
输入描述:
两个正整数
输出描述:
它们的和,差,积,商,模。每个值之间用空格隔开
示例1

 public static void main(String[] args) {
        System.out.println("请输入两位小数");
        Scanner scanner = new Scanner(System.in);
        int a = scanner.nextInt();
        int b = scanner.nextInt();
        scanner.close();
        //上面的代码 基本就是输入的基本数据

        //下面你的判断 先默认 a>b的时候 默认走下面程序的数据(跳过if) 符合业务逻辑
        //当他在小于b的进入下面的if
       //EG:a=10    23次方+21次方为=10 那么他的值为 1010
       // b=20     2的四次方+2的次方 =  10100
        if (a < b) {
            //a=a^b   a= 1010^10100= 1110  =30
            a ^= b;
            //b= b^a; a=30 b=20  20^30=10 b=10
            b ^= a;
            //a=a^b  a=30 b=10 a=20  b=10 相当把位置   相当于把值位置调换
            a ^= b;
        }
       // %d:整型输出 转换他的输出的内容为整形输出
        System.out.printf("%d %d %d %d %d", a + b, a - b, a * b, a / b, a % b);
    }

他的输出的结果是:

请输入两位小数
10
20
30 10 200 2 0

另一种比较简单运算方式:

if(a>b){
        System.out.println((a+b)+" "+(a-b)+" "+(a*b)+" "+(a/b)+" "+(a%b));
    }else{
        System.out.println((a+b)+" "+(b-a)+" "+(a*b)+" "+(b/a)+" "+(b%a));
    }
}