思路分析
String[] str1= {"0000","0001","0010","0011","0100","0101","0110","0111","1000","1001","1010","1011","1100","1101","1110","1111"};
例如十六进制2B:
因为'0'<='2'<='9',所以x='2'-'0'=2
所以str1[x]="0010",即十六进制2所对应的二进制
因为'A'<='B'<='F',所以x='B'-'A'+10=11
所以str1[x]="1011",即十六进制B所对应的二进制
综上:十六进制2B所对应的二进制数为0010 1011
代码如下
private static String[] Convert16To2(String str16) {
String[] str1= {"0000","0001","0010","0011","0100","0101","0110","0111","1000","1001","1010","1011","1100","1101","1110","1111"};
String[] str2=new String[str16.length()];
int x;
for(int i=0;i<str16.length();i++) {
char c=str16.charAt(i);
if(c<'0'||c>'9') {
x=c-'A'+10;
}else {
x=c-'0';
}
str2[i]=str1[x];
}
return str2;
}