三元运算符(三目运算)
1.基本语法
变量 = (条件表达式) ? 表达式1:表达式2
相当于if...else...的简写,条件表达式结果为true,则执行表达式1,反之亦然
2.案例
int x = 3;
x = x > 3 ? 1 : 2;
System.out.println(x); // 2
3.练习
三个数里面求最大值
public class Hello {
public static void main(String[] args) {
int a = 100;
int b = 200;
int c = 300;
int max = a > b ? a : b;
int result = c > max ? c : max;
System.out.println(result);
}
}
运算符优先级
1.按行从上往下
2.同一行,除了单元运算符和赋值运算符从右往左,其他都是从左往右
3.不需要记,如果不清楚优先级,又想确保代码运行没有问题,可以加小括号,改变优先级
进制与位运算符
1.整数有四种表示方式(字符可以根据表先转成数字)
十进制 0-9
二进制 0和1 0b或者0B开头
八进制 0-7 0开头
十六进制 0-9abcdef,0x或者0X开头
2.演示
int a = 100;
int a2 = 0b01100100;
int a3 = 0144;
int a4 = 0x64;
System.out.println(a);
System.out.println(a2);
System.out.println(a3);
System.out.println(a4);
3.位运算符
& | ^ ~ << >> >>>
进制转换
1.十进制转十六进制
将该数不断除以16,直到商为0,每步得到的余数倒过来,就是对应的十六进制
100
6 4
0 6
0x64
2.二进制转十进制
1 byte = 8 bit
java中的数字都是有符号的
从2的0次方开始递增并且从左往右算,2的0次方,2的1次方,2的2次方…………
0 1 1 0 0 1 0 0
0 64 32 0 0 4 0 0
100
3.二进制转十六进制
从低位开始,将二进制数每四位一组,转成对应的十六进制数即可
4.Hex编码