运算符:对字面量或者变量进行操作的符号
表达式:用运算符把字面量或者变量连接起来,符合Java语法的式子就可以称为表达式。
符号 | 作用 |
---|---|
+ | 加法作用 |
- | 减法作用 |
* | 乘法作用 |
/ | 除法法作用 |
% | 取模、取余 |
在代码中,如果有小数参与计算,结果可能不精确
例如:
System.out.println(1.1 + 1.01);
结果:
除法:整数参与运算。只能得到结果的整数部分(不是四舍五入),若想得到小数,需要写成小数格式
例如:
System.out.println(8 / 3);
System.out.println(8.0 / 3);
结果:
练习:
//输入一个三位数,求百位数,十位数,个位数System.out.println("请输入一个三位数");Scanner scanner=new Scanner(System.in);int a= scanner.nextInt();int b,c,d;b=a%10;c=a/10%10;d=a/100;System.out.println("个位数是"+b);System.out.println("十位数是"+c);System.out.println("百位数是"+d);
取值范围大小: 取值范围小的,和取值范围大的进行运算,小的会先提升为大的,再进行运算。 隐式转换: 什么时候转换: 例如: 其结果是int类型 数据类型是double; 强制转换:如果一个取值范围较大的数值,赋值给取值范围较小的变量,是不允许直接复制的,如果一定要赋值,需要强制转换。 格式:目标数据类型 变量名 =(目标数据类型)被强制转换的数据。 例如: 当“+”操作中出现字符串的时候,这个“+”是字符串连接符,而不是算数运算符,会将前后的数据进行拼接,二产生一个新的字符串。 连续进行“+”的操作的时候,从左到右一次执行 当字符+字符的时候,会把字符通过ASCII码表查询到对应的数字在进行计算 ++ 和 – 不论是放在变量前面还是放在变量后面,单独写一行结果是一样的。 a = 10; int b = ++ a 先加后用 b= 11 注意:隐藏了一个强制类型转换 (其结果是true 或者false,符号中间没有空格) 数学中可以写3 | 逻辑或 或者,两边都是假,结果才是假 | 短路运算符 格式:关系表达式1?表达式2:表达式2; 快捷键(idea): ctrl+alt +L,可以格式化代码 原码: 补码:
byte < short < int
数据类型不一样,不能进行计算,需要转换成一样的才可以进行计算。byte b1 = 10;
byte b2 = 20;
result = b1 +b2 ;
int i = 10;
long n = 100L;
double d = 20.0;
result = i + n + d;
// i和n相加 是long类型的。在相加是double类型
强制转换
double a = 12.3;
int b = (int)a;
字符串相加
例如;
“123”+123的结果是“123123”,
例如:
1+ 99+“程序员” 的结果是 “100程序员”字符串“+”的操作
自增自减:
int b = a ++ 先用后加 b= 10赋值运算符
符号 作用 = 赋值 += 加后赋值 a-=b 将 a+b的值赋给a -= 减后赋值 *= 乘后赋值 /= 除后赋值 %= 取余后赋值 关系运算符
符号 说明 == a==b 判断a和b的 值是否相等 != a!=b,判断a和b的值是否不相等 > a>b 判断a是否大于b >= a>=b判断a是否大于等于b < a <= a<=b 判断啊是否小于等于b 逻辑运算符:
合并为x>3&x<5符号 说明 & 逻辑与(且) ,并且,两边都为真,结果才是真
| ^ | 逻辑异或 ,相同为false,不同为true|
| ! | 逻辑非 取反|
&& 短路与 结果与&相同,但是有短路效果,
|| 短路或 结果和 | 相同,但是有短路效果。三元运算符
例如求两个数的较大值a>b?a:b
//表达式如果是真的,它的值等于前面的,如果是假的,则等于后面的。
十进制数据的二进制的表现形式,最左边是符号位,0为正,1为负
反码:
正数的补码反码是其本身,负数的反码是符号位保持不变,其余取反
正数的补码是其本身,附属的补码是其反码的基础上+1