Java学习04-程序基础-整数运算
整数运算
int x = 12345 / 67; // 184
int y = 12345 % 67; // 17
整数的除法对于除数为0时运行时将报错,编译时不会报错。
溢出
计算结果超出了范围,就会产生溢出,溢出不会出错,却会得到奇怪结果。
简写的运算符:
- +=
- -=
- *=
- /=
自增/自减
++n
n++
--n
n--
移位运算
int n = 7
int a = n << 1; // 左移1位相当于*2
int b = n << 1; // 右移1位相当于/2
byte和short要先转为int再进行位移
左移:不分正负数,带符号位移,高位移出,低位补0。
右移:该数为正,则高位补0,若为负数,则高位补1。
无符号右移:也叫逻辑右移,即不论正负数,高位补0。
位运算
n = 0 & 1; // 与,同时为1才为1
n = 0 | 1; // 或,任意1个为1就为1
n = ~0; // 非,取反
n = 1 ^ 0; // 异或,不同为1,相同为0
对两个整数进行位运算,就是依次对每一位进行运算 。
运算优先级
()!~++--*/%+-<<>>>>>&|+=-=*=/=
类型自动提升与强制类型转换
低向高自动转换
高向低强制转换:(类型)。超出范围的强制转换会得到错误的结果。

浙公网安备 33010602011771号