您的位置:首页 > 编程语言 > Java开发

蓝桥杯 ADV-239 算法提高 P0102 (进制转换) (java)

2017-12-14 10:39 477 查看
算法提高 P0102  

时间限制:1.0s   内存限制:256.0MB
    

  用户输入三个字符,每个字符取值范围是0-9,A-F。然后程序会把这三个字符转化为相应的十六进制整数,并分别以十六进制,十进制,八进制输出,十六进制表示成3位,八进制表示成4位,若不够前面补0。(不考虑输入不合法的情况)
输入

  1D5
输出
(注意冒号后面有一个空格)

  Hex: 0x1D5

  Decimal: 469

  Octal: 0725

总结该题目中使用的类或方法:

1、Integer.valueOf(xString, 16):第二个参数16为xString使用的基数(进制),结果是一个表示字符串指定的整数值的 Integer 对象。(整形值采用十进制整数表示)

2、Integer.toBinaryString(int i):将十进制转化为2进制

3、Integer.toHexString(int i):将十进制转化为16进制

4、Integet.toOctalString(int i):将十进制转化为8进制

5、Integer.parseInt(String s):将字符串s转化为整形

6、两个字符串连接:String a = "1";  String b="2";  Stirng c=a+b;    c为12。

7、字符串string的所有字符转化为大写:string.toUpperCase();

代码如下:

import java.util.Scanner;

public class Main {

public static void main(String[] args) {
// TODO Auto-generated method stub
Scanner scanner = new Scanner(System.in);
String xString = scanner.next();
String shiString = Integer.valueOf(xString, 16).toString();//10进制
int shijinzhi = Integer.parseInt(shiString);
String bajinzhi = Integer.toOctalString(shijinzhi);//八进制
String shiliujinzhi = Integer.toHexString(shijinzhi).toUpperCase();//十六进制(大写)

//判断十六进制是否为3位,补0
if(shiliujinzhi.length()==1){
String temp = "0x00";
shiliujinzhi=temp+shiliujinzhi;
}else if(shiliujinzhi.length()==2){
String temp = "0x0";
shiliujinzhi=temp+shiliujinzhi;
}else if(shiliujinzhi.length()==3){
String temp = "0x";
shiliujinzhi=temp+shiliujinzhi;
}

//判断八进制是否为4位,补0
if(bajinzhi.length()==1){
String temp = "000";
bajinzhi=temp+bajinzhi;
}else if(bajinzhi.length()==2){
String temp = "00";
bajinzhi=temp+bajinzhi;
}else if(bajinzhi.length()==3){
String temp = "0";
bajinzhi=temp+bajinzhi;
}

System.out.println("Hex: "+shiliujinzhi);
System.out.println("Decimal: "+shijinzhi);
System.out.println("Octal: "+bajinzhi);
}

}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: