java中的二进制、八进制、十六进制
- 二进制(binary)
- 八进制(Octal)
- int变量不要在数值前加0,会被误以为八进制
- 十进制(decimalism)
- 十六进制(00H)(hexadecimal)
- int表示十六进制数时,需要偶数个长度
- 转换为String,还可以同步转换进制
二进制(binary)
//二进制,0b/0B打头,赋值时也不需要引号
int Bin_0b = 0b11;
int Bin_0B = 0B11;
//直接在system中以十进制输出,其会根据int前缀判断是几进制
System.out.println(Bin_0b);
System.out.println(Bin_0B);
//若想将此二进制以二进制数的形式转换出来时,使用Integer.toBinaryString(Bin_0b )方法,因为Bin_0b的二进制仅有两位,若直接输出,int是32位,会有问题,所以才需要使用本方法来转换
String SCID = Integer.toBinaryString(SCIDInt);
SCID = SupplementWithParameter(SCID, 4, "0");
System.out.println("SCID:"+SCID);
//因int数据类型只有32位,当二进制位数过长,就需要用到long类型(注意,long类型要以L结尾)。
long RSV = 0B10101010101010101010101010101010101010L;
System.out.println(RSV);
输出结果为3
。
八进制(Octal)
//八进制数据以0打头,赋值时也不需要引号
int Oct = 0144;
//直接在system中以十进制输出,其会根据int前缀判断是几进制,所以十进制数据在打印输出时,不要在int数值前加0,会被误以为八进制,从而输出错误。
System.out.println(Oct);
输出结果为100
。
int变量不要在数值前加0,会被误以为八进制
十进制(decimalism)
//十进制数据不需要前缀,赋值时也不需要引号
int Dec = 144;
//直接在system中输出十进制,其会根据int前缀判断是几进制,所以十进制数据在打印输出时,不要在int数值前加0,会被误以为八进制,从而输出错误。与前面的八进制比较。
System.out.println(Dec);
输出结果为144
十六进制(00H)(hexadecimal)
Java中的int十六进制,0xC1
与0xc1
是相等的。
//十六进制数据以0x打头,赋值时也不需要引号
int Hex = 0xf;
//直接在system中输出十进制。
System.out.println(Hex);//输出结果为“15”
int表示十六进制数时,需要偶数个长度
//使用int表示十六进制时,需要偶数长度
int writeByte = 0xAAAAA;//写五个十六进制时报错,提示需要偶数长度,提示“hexBinary needs to be even-length”
int writeByte = 0xAAAAAA;//写六个十六进制
转换为String,还可以同步转换进制
String x = Integer.toBinaryString(0x0);
:转换为二进制字符串。