IntegerValTest.java
package sample;
public class IntegerValTest
{
public static void main(String[] args)
{
/*
Java里面数据类型分为:基本类型,引用类型
基本类型8个分别为:
byte 1个字节=8bit
short 2个字节
int 4个字节
long 8个字节
char 2个字节
float 4个字节
double 8个字节
boolean 1个字节
整数类型和浮点类型的值较小类型自动转换为较大类型。
整数类型值有4中表达方式:
十进制 常用的
二进制 0b开头
八进制 0开头
十六进制 0x开头
*/
//定义两个8位的二进制整数
int binVal1 = 0b11010100;
int binVal2 = 0B01101001;
//定义一个32位的二进制整数,最高位是符号位
int binVal3 = 0B10000000000000000000000000000011;
System.out.println(binVal1);
System.out.println(binVal2);
System.out.println(binVal3);
//所有数字在计算机底层都是以二进制形式存在的,原码是直接将一个数值换算成二进制数。但计算机以补码的形式保存所有的整数。
//补码的计算规则:正数的补码和原码完全相同,负数的补码是其反码加1;反码是对原码按位取反,只是最高位符号位保持不变。
/*
定义一个8位的二进制整数,该数值默认占32位,因此它是一个正数只是强制向下类型转换成byte时产生了溢出,最终导致binVal4变成了-23
*/
byte binVal4 = (byte)0b11101001;
/*
定义一个32为的二进制整数,最高位是1
但由于数值后添加了L后缀,因此该整数实际占64位,第32位的1不是符号位,因此binVal5的值等于2的31次方+2+1
*/
long binVal5 = 0B10000000000000000000000000000011L;
System.out.println(binVal4);
System.out.println(binVal5);
}
}
javac -d . IntegerValTest.java
java sample.IntegerValTest
212
105
-2147483645
-23
2147483651