条件运算符(三目运算符):
boolean表达式?表达式!:表达式2
先计算boolean表达式的值,如果是true ,则整个表达式的值为表达式1的值,如果是false则整个表达式的值为表达式2的值
package day05; public class Demo01 { public static void main(String[] args) { int n = 1; int m = 2; char c = n > m ? 'T' : 'F'; System.out.println(c); } }
package day05; import java.util.Scanner; public class Demo02 { public static void main(String[] args) { Scanner con = new Scanner(System.in); System.out.print("输入总行数:"); int rows = con.nextInt(); con.close(); int size = 5; int pages = rows%size==0 ? rows/size :rows/size+1; System.out.println("共"+pages+"页"); } }
赋值运算符:
=
赋值表达式的值是赋值的结果
a = (b = 1) 将 b=1表达式结果赋值给a
a = 1
a = a + 2; ==>a+=2 复合赋值运算
package day05; public class Demo03 { public static void main(String[] args) { int num = 321; int last; int reverse_num; last = num % 10; System.out.println(last); System.out.println(reverse_num); reverse_num = last *100; num/=10; last = num % 10; System.out.println(last); reverse_num =reverse_num + last *10; System.out.println(reverse_num); num/=10; last = num % 10; reverse_num =reverse_num + last *1; System.out.println(last); System.out.println(reverse_num); } }
+ 是java 中唯一一个重载运算符,数学加法和字符串连接
重载:名称一样不通的功能
package day05; public class Demo04 { public static void main(String[] args) { System.out.println(1+1); //数学1+1 =2 System.out.println(1+'1');//1+ 字符 1 字符 1 = 49 ==》 1+49 =50 System.out.println(1+"1");//1 + 字符串1 11 System.out.println(1+1+'1'+"1"); //1+1+49+字符串1 511 } }
移位运算符
类似 10进制中移动小数点
<< 左移 (数学)
原数*2
因为 java的数据在内存中都是二进制的
>> 右移 高位 整数 补零 负数 补一 (数学)
原数/2
~~~~~~~~~~~~~~~~~~
>>>逻辑右移 高位补零 (逻辑)
package day05; public class Demo01 { public static void main(String[] args) { int n = 0xfffffffc; int m = n<<4; System.out.println(Integer.toBinaryString(n)); System.out.println(Integer.toBinaryString(m)); m = m>>4; System.out.println(Integer.toBinaryString(m)); m = m>>>16; System.out.println(Integer.toBinaryString(m)); } }
位运算符
&与 0 0 是0 0 1是0 1 1 是1
|或 0 0 是0 0 1 是1 1 1是1
^异或 一样0 不一样1
~ 非 0是1 1是0
i & 0xff 消去高位
移位运算 和 位运算一起用 可以 组合数据(消去,截取,拼接)
快速的实现一个整数 * 16 (2的整数倍)
int n = 6;
int y = n<< 4;