进制转换
进制转化的几个方法
进制转化在JAVA中已经封装好了.
无论是常规的10转2,8,16,还是相对应的2,8,16进制转化为10进制的方法,当然也包括10->n进制,n进制转10进制的常规方法.
都被封装在Integer对象中.
10进制转化其他进制 | 对应的方法,参数:n(原10进制数据),r(进制) | 返回值 |
---|---|---|
10进制转二进制 | Integer.toBinaryString(n); | 一个二进制字符 |
10进制转八进制 | Integer.toOctalString(n); | 一个八进制字符 |
10进制转十六进制 | Integer.toHexString(n); | 一个十六进制字符 |
10进制转 r 进制 | Integer.toString(100, 16); | 一个r进制字符串 |
package 进制转换;
public class test1 {
public static void main(String[] args) {
int n=11;
System.out.println(n+"的二进制是:"+Integer.toBinaryString(n));
System.out.println(n+"的八进制是:"+Integer.toOctalString(n));
System.out.println(n+"的十六进制是:"+Integer.toHexString(n));
System.out.println(n+"的三进制是:"+Integer.toString(n, 3));
}
}
下面是r进制转10进制
r进制转10进制 | 方法 |
---|---|
radix进制的字符串s转10进制 | Integer.parseInt((String) s,(int) radix); |
package 进制转换;
public class test2 {
public static void main(String[] args) {
String s="1011";
System.out.println(s+"十进制是:"+Integer.parseInt(s, 2));//2是代表s是二进制
}
}
下面是一道进制转换的水题
题目描述:
写出一个程序,接受一个十六进制的数值字符串,输出该数值的十进制字符串。(多组同时输入 )
输入描述:
输入一个十六进制的数值字符串。
输出描述:
输出该数值的十进制字符串。
输入例子
0xA
输出例子:
10
一开始做过一道类似的题目,是用switch,一个个对应来做的,太麻烦了,后来找到个简单的
package 进制转换;
import java.util.Scanner;
public class test3 {
public static void main(String[] args) {
Scanner sc=new Scanner(System.in);
String s=sc.nextLine();
int i=Integer.parseInt(s.substring(2), 16);
//s.substring()是截取,跳过前两个字符0x
System.out.println(i);
}
}