62,614
社区成员
发帖
与我相关
我的任务
分享
package com.biao;
import java.util.HashMap;
import java.util.Map;
public class Binary2Hex {
private static Map<String, String> bTable;
static {
bTable = new HashMap<String, String>();
bTable.put("0000", "0");
bTable.put("0001", "1");
bTable.put("0010", "2");
bTable.put("0011", "3");
bTable.put("0100", "4");
bTable.put("0101", "5");
bTable.put("0110", "6");
bTable.put("0111", "7");
bTable.put("1000", "8");
bTable.put("1001", "9");
bTable.put("1010", "A");
bTable.put("1011", "B");
bTable.put("1100", "C");
bTable.put("1101", "D");
bTable.put("1110", "E");
bTable.put("1111", "F");
}
public static String toHex(String bStr) {
int ex = 4 - bStr.length() % 4;
switch (ex) {
case 1:
bStr = "0" + bStr;
break;
case 2:
bStr = "00" + bStr;
break;
case 3:
bStr = "000" + bStr;
break;
}
StringBuilder sb = new StringBuilder("0x");
for (int i = 0; i < bStr.length(); i += 4) {
sb.append(bTable.get(bStr.substring(i, i + 4)));
}
return sb.toString();
}
public static void main(String[] args) {
String b = "10100101111";
System.out.println(Binary2Hex.toHex(b));
}
}
String in = "001010100"; // 输入
String result = "0x"; // 保存结果
while(in.length() % 4 != 0){
in = "0"+in; // 先补齐,4位的整数被
}
while(in.length()>0){
String piece = in.substring(0,4);
if(piece.equalsIgnoreCase("0000")){
if (result.length() > 2)
result += '0';
}else if(piece.equalsIgnoreCase("0001")){
result += '1';
}else if(piece.equalsIgnoreCase("0010")){
result += '2';
}else if(piece.equalsIgnoreCase("0011")){
result += '3';
}else if(piece.equalsIgnoreCase("0100")){
result += '4';
}else if(piece.equalsIgnoreCase("0101")){
result += '5';
}else if(piece.equalsIgnoreCase("0110")){
result += '6';
}else if(piece.equalsIgnoreCase("0111")){
result += '7';
}else if(piece.equalsIgnoreCase("1000")){
result += '8';
}else if(piece.equalsIgnoreCase("1001")){
result += '9';
}else if(piece.equalsIgnoreCase("1010")){
result += 'a';
}else if(piece.equalsIgnoreCase("1011")){
result += 'b';
}else if(piece.equalsIgnoreCase("1100")){
result += 'c';
}else if(piece.equalsIgnoreCase("1101")){
result += 'd';
}else if(piece.equalsIgnoreCase("1110")){
result += 'e';
}else if(piece.equalsIgnoreCase("1111")){
result += 'f';
}else{
result += "[What do you want to do?]";
}
in = in.substring(4);
}
System.out.println(result);
String in = "001010100"; // 输入
String result = "0x"; // 保存结果
while(in.length % 4 != 0){
in = "0"+in; // 先补齐,4位的整数被
}
for(int i=0;i<in.length;i+=4){
String piece = in.substring(in.length-4);
if(piece.equalsIgnoreCase("0000")){
result += '0';
}elseif(piece.equalsIgnoreCase("0001")){
result += '1';
}elseif(piece.equalsIgnoreCase("0010")){
result += '2';
}elseif(piece.equalsIgnoreCase("0011")){
result += '3';
}elseif(piece.equalsIgnoreCase("0100")){
result += '4';
}elseif(piece.equalsIgnoreCase("0101")){
result += '5';
}elseif(piece.equalsIgnoreCase("0110")){
result += '6';
}elseif(piece.equalsIgnoreCase("0111")){
result += '7';
}elseif(piece.equalsIgnoreCase("1000")){
result += '8';
}elseif(piece.equalsIgnoreCase("1001")){
result += '9';
}elseif(piece.equalsIgnoreCase("1010")){
result += 'a';
}elseif(piece.equalsIgnoreCase("1011")){
result += 'b';
}elseif(piece.equalsIgnoreCase("1100")){
result += 'c';
}elseif(piece.equalsIgnoreCase("1101")){
result += 'd';
}elseif(piece.equalsIgnoreCase("1110")){
result += 'e';
}elseif(piece.equalsIgnoreCase("1111")){
result += 'f';
}else{
result += "[What do you want to do?]";
}
}
System.out.println(result);