java学习(4)
java学习(4)
进制运算
进制: 指进位制,是人们规定的一种进位方式,表示某一个位置上的数,运算时是逢X进一位,
十进制是逢十进一,二进制是逢二进一,八进制是逢八进一
常见进制,二进制,八进制,十进制,十六进制
在java当中不同进制的书写格式
- 十进制 JAVA中默认为十进制
- 二进制 数值面前要加0b开头
- 八进制 数值前面要以0开头
- 十六进制要以0x开头
原码反码补码
计算机中的数据,都是以二进制补码的形式在运算,而补码是通过反码和原码推算出来的
public class DemoScanner {
public static void main(String[] args) {
// byte 的取值范围为 -128~127
byte b = (byte)180;
System.out.println(b); // -76
}
}
位运算
System.out.println(6&2);// 2
// 00000110 6
// 00000010 2
// &&&&&&&&
// 00000010 2
System.out.println(6|2);// 6
// 00000110 6
// 00000010 2
// ||||||||
// 00000110 6
System.out.println(6^2); // 4
// 00000110 6
// 00000010 2
// ^^^^^^^
// 00000100 4
System.out.println(~2); // -3
- 与操作 & 遇0则0
- 或操作 | 遇1则1
- 亦或操作 ^ 相同则取,不同则取反
- 取反操作 ~
位移运算
- 有符号左移运算 << 左边符号丢弃,右边补0 乘以2
- 有符号右移运算 >> 右边符号丢弃,左边补0 除以2
- 无符号右移运算 >>> 无论符号位是0还是1 都补0
System.out.println(2<<3); // 2*2*2*2 // 16
System.out.println(16>>3); // 16/2/2/2 // 2
二维数组
二维数组也是一种容器,不同于一位数组,该容器存储的都是一维数组容器
数据类型[][] 变量名 = new 数据类型[m][n]
int[][] arr = new int[3][3];
// 0 0 0
// 0 0 0
// 0 0 0