题目:
编写程序,从控制台接收用户输入的十六进制,并输出对应的二进数,要求程序中用一个字符串数组表示16进制的“0”至“F”。如下所示:
String[] hexBits = {"0000", "0001", "0010", "0011",
"0100", "0101", "0110", "0111",
"1000", "1001", "1010", "1011",
"1100", "1101", "1110", "1111"};
产生输出如下所示:
Enter a Hexadecimal string: 1abc
The equivalent binary for hexadecimal "1abc" is 0001 1010 1011 1100
代码如下:
import java.util.Scanner;
public class HW04 {
public static void main(String[] args) {
String[] hexBits = { "0000", "0001", "0010", "0011",
"0100", "0101", "0110", "0111",
"1000", "1001", "1010", "1011",
"1100", "1101", "1110", "1111" };
System.out.print("Enter a Hexadecimal string:");
Scanner sc = new Scanner(System.in);
String str16 = sc.nextLine();
sc.close();
String[] str2 = new String[str16.length()];
for (int i = 0; i < str16.length(); i++) {
char x = str16.charAt(i);
if (x >= '0' && x <= '9') {
String temp = String.valueOf(x);
int y = Integer.parseInt(temp);
str2[i] = hexBits[y];
} else {
int z = x - 87;
str2[i] = hexBits[z];
}
}
System.out.print("The equivalent binary for hexadecimal \"" + str16 + "\" is ");
for (int j = 0; j < str2.length; j++) {
System.out.print(str2[j] + " ");
}
}
}