版权声明: https://blog.csdn.net/qq_40794602/article/details/86484760
考点1:
- 整数相除只能得到整数。如果想得到小数,必须把数据变化为浮点数类型
- eg: 10/4=2 10.0/4=2.5 10/4.0=2.5
考点2:
byte b = 10;
b = b + 1;//类型不匹配,int 不能转成byte 报错
扩展运算符符(+=,-=,*=,/=,%=):
short s=1;
s+=1;//不会报错 扩展运算符会帮你自动进行强制类型转换
逻辑运算符有哪些:
- & 逻辑与,有false则false。
- | 逻辑或,有true则true。
- ^ 逻辑异或,相同为false,不同为true。
- ! 逻辑非:非false则true,非true则false。
- && 逻辑与
- || 逻辑或
敲黑板(逻辑||和逻辑|):
- ||与|结果是一样的
- ||具有短路效果。左边是true,右边不执行。
- |是无论左边是false还是true,右边都会执行
敲黑板(逻辑&&和逻辑&):
- 最终与&结果一样。
- &&具有短路效果。左边是false,右边不执行。
- &是无论左边是false还是true,右边都会执行
位运算符有哪些:
- & 按位与 有0则0,其它为1
- | 按位或 有1则1,其它为0
- ^ 按位异或 相同则0,不同则1 一个数按位异或2次相同的数,值不变
- ~ 按位取反 按位补运算符翻转操作数的每一位
- <<按位左移 左移,右边补齐0,最高位不变
- >>按位右移 右移,左边补齐0,最高位不变
- >>>无符号右移
- 注意:& ,|和^既是路基运算符也是位运算符
考点3 交换两个变量(炫技型):
考点:位异或运算符的特点:
^的特点:一个数据对另一个数据位异或两次,该数本身不变。*/
int x = 1;
int y = 2;
x = x ^ y;//x = 1 ^ 2
y = x ^ y;//y = 1 ^2 ^ 2 = 1
x = x ^ y;//x = 1 ^ 2 ^ 1 = 2
考点4:
int b = 0b11111111111111111111111111111111; //这样写的而其实都是补码形式
System.out.println(b); //打印的值是-1
键盘录入的基本步骤:
- 导包: 在class上面 写入 import java.util.Scanner;
- 创建键盘录入对象Scanner sc = new Scanner(System.in)
- 通过对象获取数据int x = sc.nextInt();
待解决问题:<< 运算符不是不会改变符号位吗?为什么一个负数经过<<运算会变成正数?
int c = -2147483647;
System.out.println(c<<2); 打印的结果是4