java中的二进制、八进制、十六进制
二进制
//二进制,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。
八进制
//八进制数据以0打头,赋值时也不需要引号 int Oct = 0144; //直接在system中以十进制输出,其会根据int前缀判断是几进制,所以十进制数据在打印输出时,不要在int数值前加0,会被误以为八进制,从而输出错误。 System.out.println(Oct);
输出结果为100。
int变量不要在数值前加0,会被误以为八进制
十进制
//十进制数据不需要前缀,赋值时也不需要引号 int Dec = 144; //直接在system中输出十进制,其会根据int前缀判断是几进制,所以十进制数据在打印输出时,不要在int数值前加0,会被误以为八进制,从而输出错误。与前面的八进制比较。 System.out.println(Dec);
输出结果为144
十六进制(00H)
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);:转换为二进制字符串。
下一篇:
Java后端实现拖拽排序