2-蓝桥杯
BASIC-11-十六进制转十进制
问题描述
从键盘输入一个不超过8位的正的十六进制数字符串,将它转换为正的十进制数后输出。
注:十六进制数中的10~15分别用大写的英文字母A、B、C、D、E、F表示。
样例输入
FFFF
样例输出
65535
import java.util.Scanner;
public class Main {
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
String str = sc.next();
long ans = 0l;
for(int i = 0; i < str.length(); i++) {
if(str.charAt(i) >= '0' && str.charAt(i) <= '9')
ans = ans * 16 + str.charAt(i) - '0';
else ans = ans * 16 + str.charAt(i) - 'A' + 10;
}
System.out.println(ans);
}
}
记录几个函数方法:
- 十进制整数转其他进制
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)); //Long 同理 System.out.println(n + "的二进制是:" + Long.toBinaryString(n)); System.out.println(n + "的八进制是:" + Long.toOctalString(n)); System.out.println(n + "的十六进制是:" + Long.toHexString(n)); System.out.println(n + "的三进制是:" + Long.toString(n, 3));
- 某字符串转十进制整数
Integer.parseInt(字符串,字符串的进制); Long.parseLong(字符串,字符串的进制);
单纯的记录下 Java 中排序的函数
Arrays.sort();
BASIC-10-十进制转十六进制
import java.util.Arrays;
import java.util.Scanner;
public class Main {
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
Long k = sc.nextLong();
String ansBinary = Long.toBinaryString(k);
if(ansBinary.length() % 4 == 0) System.out.println(toHex(ansBinary));
else {
String temp = "";
for(int i = 1; i <= 4 - ansBinary.length() % 4; i++)temp += "0";
ansBinary = temp + ansBinary;
System.out.println(toHex(ansBinary));
}
}
private static String toHex(String s) {
StringBuffer sb = new StringBuffer();
for(int i = 0; i < s.length(); i += 4) {
String sub = s.substring(i, i+4);
switch(sub) {
case "0000": sb.append("0");break;
case "0001": sb.append("1");break;
case "0010": sb.append("2");break;
case "0011": sb.append("3");break;
case "0100": sb.append("4");break;
case "0101": sb.append("5");break;
case "0110": sb.append("6");break;
case "0111": sb.append("7");break;
case "1000": sb.append("8");break;
case "1001": sb.append("9");break;
case "1010": sb.append("A");break;
case "1011": sb.append("B");break;
case "1100": sb.append("C");break;
case "1101": sb.append("D");break;
case "1110": sb.append("E");break;
case "1111": sb.append("F");break;
}
}
return sb.toString();
}
}