day3
运算符
算术运算符
基本用法
public class AriDemo1 {
public static void main(String[] args) {
//运算符+-*
System.out.println(3+2);
//计算时有小数参与,结果可能不准确
System.out.println(1.1+1.1);
System.out.println(1.1+1.01);
System.out.println(1.1-1.01);
System.out.println(1.1*1.01);
}
}
运行结果:
5
2.2
2.1100000000000003
0.09000000000000008
1.1110000000000002
高级用法
数字相加
类型不一致进行转换
隐式转换(1.小变大 2.byte short char 先提升为int在计算)
强制转换(可能出现错误)
字符串加操作
字符相加
char的提升
只要有字符串参与,就是拼接
自增自减运算符
前++ 后++
单独一行结果一样,参与计算则不同(先用后加 先加后用)
用法
赋值运算符
+= 等赋值运算符底层都隐藏着强转
s = (short)(s+1)
关系运算符(比较运算符)
结果是boolean类型
注意"=="
import java.util.Scanner;
public class CompareTest1 {
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
System.out.println("请输入自己衣服时髦程度(1~10)");
int you = sc.nextInt();
System.out.println("请输入相亲对象衣服时髦程度(1~10)");
int her = sc.nextInt();
// System.out.println(you > her);
boolean result = you > her;
System.out.println(result);
}
}
逻辑运算符
&与
|或
^异或(同为false)
!(不要写多次,写一个或者不写)
优化
短路逻辑运算符
&& (第一个错误,不判断后一个)短路与
|| (第一个正确,不判断第二个)短路或
import java.util.Scanner;
public class Test3 {
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
System.out.println("请输入一个整数");
int number1 = sc.nextInt();
System.out.println("请再输入一个整数");
int number2 = sc.nextInt();
// boolean result1 = (number1 == 6 || number2 ==6);
// boolean result2 = (number1+number2)%6 == 0;
// boolean result = result1 || result2;
// System.out.println(result);
//true有三种情况
//a == 6
//b == 6
//(a+b)%6==0
boolean result = number1 ==6 ||number2 == 6 ||(number1+ number2)%6 == 0;
System.out.println(result);
}
}
三元运算符
结果必须要用
在这里插入图片描述
运算符优先级
小括号优先所有
原码反码补码
原码
符号位(0为正)+
原码对负数计算出现错误
反码是为了解决负数计算
反码
正数不变
负数符号位不变,其他取反
补码
反码+1
为了解决跨0问题
反码中0反码有两种形式(11111111)(00000000)
128无原码反码,因补码错一位故可以到128
其他运算符
符号位(0为正)+
原码对负数计算出现错误
反码是为了解决负数计算
反码
正数不变
负数符号位不变,其他取反
补码
反码+1
为了解决跨0问题
反码中0反码有两种形式(11111111)(00000000)
128无原码反码,因补码错一位故可以到128