JAVA进制转化API
任一进制转化为10进制
函数定义:public static int parseInt(String s,int radix)
函数定义:public static long parseLong(String s,int radix)
radix:基数
将对应String进行对应基数的进制转化
可以传入负数,结果只是变为负
//X->2
int anInt1 = Integer.parseInt("1000100", 2);//68
int anInt2 = Integer.parseInt("-1000100", 2);//-68
long aLong1 = Long.parseLong("36d", 16);//877
long aLong2 = Long.parseLong("-36d", 16);//-877
十进制转化为其他进制
二进制
函数定义:public static String toBinaryString(int i)
Binary:二进制
传入负数,结果差距较大
//10->2
String string1 = Integer.toBinaryString(10086);//10011101100110
String string2 = Long.toBinaryString(-10086);//1111111111111111111111111111111111111111111111111101100010011010
八进制
函数定义:public static String toOctalString(int i)
Octal:八进制
传入负数,结果差距较大
//10->8
String string3 = Integer.toOctalString(10086);//23546
String string4 = Long.toOctalString(-10086);//1777777777777777754232
十六进制
函数定义:public static String toHexString(int i)
Hex:16进制
Float 和 Double 型数字可以转为 16进制,不能转为 8进制
float 和 double 有差别
//10->16
String string5 = Integer.toHexString(10086);//2766
String string6 = Long.toHexString(-10086);//ffffffffffffd89a
//Q:为啥不太一样?
String string7 = Float.toHexString((float) 3.14159);//0x1.921fap1
String string8 = Double.toHexString((double) 3.14159);//0x1.921f9f01b866ep1
//Q:为啥只是变成负的?
String string9 = Float.toHexString((float) -3.14159);//-0x1.921fap1
String string10 = Double.toHexString((double) -3.14159);//-0x1.921f9f01b866ep1
全部代码
public class Empty {
public static void main(String[] args) {
//X->2
int anInt1 = Integer.parseInt("1000100", 2);//68
int anInt2 = Integer.parseInt("-1000100", 2);//-68
long aLong1 = Long.parseLong("36d", 16);//877
long aLong2 = Long.parseLong("-36d", 16);//-877
System.out.println(anInt1);
System.out.println(anInt2);
System.out.println(aLong1);
System.out.println(aLong2);
//10->2
String string1 = Integer.toBinaryString(10086);//10011101100110
String string2 = Long.toBinaryString(-10086);//1111111111111111111111111111111111111111111111111101100010011010
System.out.println(string1);
System.out.println(string2);
//10->8
String string3 = Integer.toOctalString(10086);//23546
String string4 = Long.toOctalString(-10086);//1777777777777777754232
System.out.println(string3);//
System.out.println(string4);//
//10->16
String string5 = Integer.toHexString(10086);//2766
String string6 = Long.toHexString(-10086);//ffffffffffffd89a
//Q:为啥不太一样?
String string7 = Float.toHexString((float) 3.14159);//0x1.921fap1
String string8 = Double.toHexString((double) 3.14159);//0x1.921f9f01b866ep1
//Q:为啥只是变成负的?
String string9 = Float.toHexString((float) -3.14159);//-0x1.921fap1
String string10 = Double.toHexString((double) -3.14159);//-0x1.921f9f01b866ep1
System.out.println(string5);
System.out.println(string6);
System.out.println(string7);
System.out.println(string8);
System.out.println(string9);
System.out.println(string10);
}
}