逻辑取反,异或
package 逻辑运算符; public class InverseOperator { public static void main(String[] args) { System.out.println(60>20); System.out.println(!(60>20)); boolean b = (10>1)^(3>5);// T F ^表示不同时为T System.out.println("b="+b); System.out.println("============================"); //练习题 boolean x=true; boolean y=false; short z=46; if((z++==46)&&(y=true)) z++;//注意==为判断,=为赋值 if ((x=false)||(++z==49))z++; System.out.println("z="+z); } }
赋值运算符
package chapter03.D3赋值运算符; public class AssignOperator { public static void main(String[] args) { int n1=10; n1+=4; System.out.println(n1); n1/=3;//n1=n1/3 System.out.println(n1); byte b=3; b+=2; //b=(byte)(b+2);复合赋值运算会有类型转换 b++也有转换 } }
三元运算符
package 三元运算符; public class TernaryOperator { public static void main(String[] args) { int a=10; int b=99; int result=a<b?a++:b--; System.out.println("result="+result); System.out.println("a="+a); System.out.println("b="+b); } }
package 三元运算符; public class TernaryOperatorDetail { public static void main(String[] args) { int a=3; int b=8; int c=a>b?(int)1.1:(int)3.4;//注意强转 System.out.println(c); } }
键盘输入
package 键盘输入; import java.util.Scanner; public class Input { public static void main(String[] args) { /* 1.导入Scanner类所在的包 2.创建Scanner对象,new创建一个对象 3.myScanner就是Scanner类的对象 */ Scanner myscanner = new Scanner(System.in); System.out.println("请输入名字"); String name = myscanner.next(); System.out.println("请输入年龄"); int age = myscanner.nextInt(); System.out.println("请输入薪水"); double sal= myscanner.nextDouble(); System.out.println("信息如下"); System.out.println("名字="+name+"年龄="+age+"薪水="+sal); } }
四种进制
package 四种进制; public class BinaryTest { public static void main(String[] args) { int n1=0b1010;//0b开头 二进制 0*2^0 + 1*2^1 + 1*2^3 int n2=1010; int n3=01010;//0开头 八进制 1*8^1 + 1*8^3 int n4=0X10101;//0X开头 十六进制 A表示10 1*16^0 + 1*16^2 + 1*16^4 System.out.println("n1="+n1); System.out.println("n2="+n2); System.out.println("n3="+n3); System.out.println("n4="+n4); /* 十进制转二进制 该数不断除以2,直到商为0,余数倒过来 8位一字节 十进制转八进制 不断除以8同理 十进制转十六进制 同理 二进制转八进制 三位一组转对应八进制 二进制转十六进制 四位一组转十六进制 八进制转二进制 一位转三位二进制 十六进制转二进制 一位转四位二进制 */ } }
位运算
package 位运算; public class BitOperator { public static void main(String[] args) { System.out.println(2&3); /* 2的原码 00000000 00000000 00000000 00000010 第一位是符号位 0是正 2的补码 00000000 00000000 00000000 00000010 正数三码合一(原码 反码 补码) 3的原码 00000000 00000000 00000000 00000011 3的补码 00000000 00000000 00000000 00000011 按位& 00000000 00000000 00000000 00000010 运算后的补码 补码运算 原码 00000000 00000000 00000000 00000010 2 */ System.out.println(~-2); /* -2的原码 10000000 00000000 00000000 00000010 -2的反码 11111111 11111111 11111111 11111101 反码符号位不变,其他取反 原-反-补 -2的补码 11111111 11111111 11111111 11111110 负数补码是反码+1 补码取反 00000000 00000000 00000000 00000001 运算后补码 正数三码合一 原码 00000000 00000000 00000000 00000001 1 */ System.out.println(~2); /* 2的原码 00000000 00000000 00000000 00000010 第一位是符号位 0是正 2的补码 00000000 00000000 00000000 00000010 正数三码合一(原码 反码 补码) 取反 11111111 11111111 11111111 11111101 运算后补码 反码 11111111 11111111 11111111 11111100 负数补码最大 反码-1 原码 10000000 00000000 00000000 00000011 符号位不变,其他全变 -3 */ } }
package 位运算; public class BitOperator02 { public static void main(String[] args) { System.out.println(1>>2);// /2/2 System.out.println(15>>2);// 15/2/2 7/2 3 System.out.println(1<<2);//×2×2 } }