^为按位异或运算
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 2的3次方+2的1次方为=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)); } }