题目
二进制数转换为十六进制数
代码
import java.util.Scanner;
public class chapter5_2 {
public static void main(String[] args) {
Scanner in = new Scanner(System.in);
System.out.println("请输出一串二进制数:");
String str = in.nextLine();
String s = "";
int judge = 4 - (str.length()%4);
if (judge!=0 && judge!=4) {
for (int i = 0; i <= judge; i++)
str+="0";
}
char[] ch = str.toCharArray();
int[] a = new int[str.length()];
for(int i = 0; i <str.length(); i++){
String st = Character.toString(ch[i]);
a[i]=Integer.valueOf(st).intValue();
}
for (int i = 1; i <= str.length(); i++) {
int c;
if (i%4==0) {
c = a[i-1]*1+a[i-2]*2+a[i-3]*4+a[i-4]*8;
if (c<10) {
int b=a[i-1]*1+a[i-2]*2+a[i-3]*4+a[i-4]*8;
s+=b+"";
}
if (c>=10) {
switch (c) {
case 10:s+="A";break;
case 11:s+="B";break;
case 12:s+="C";break;
case 13:s+="D";break;
case 14:s+="E";break;
case 15:s+="F";break;
default:
break;
}
}
}
}
System.out.println("转换为十六进制:"+s);
}
}