二进制转换成十六进制程序
public class Test {
    public static void main(String[] args) {
        String hex = "abef";
        int i = Integer.parseInt(hex, 16);
        System.out.println(hex);
        String str = BinaryString(i));
        System.out.println(str);
    }
    static String[] hexStr = { "0", "1", "2", "3", "4", "5", "6", "7", "8",
            "9", "A", "B", "C", "D", "E", "F" };
    public static String b2h(String binary) {
        // 这里还可以做些判断,比如传进来的数字是否都是01
        System.out.println(binary);
        int length = binary.length();
        int temp = length % 4;
        // 每四位2进制数字对应一位16进制数字
        // 补足4
        if (temp != 0) {
            for (int i = 0; i < 4 - temp; i++) {
                binary = "0" + binary;
二进制与十六进制之间的转换
            }
        }
        // 重新计算长度
        length = binary.length();
        StringBuilder sb = new StringBuilder();
        // 4个二进制数为一组进行计算
        for (int i = 0; i < length / 4; i++) {
            int num = 0;
            // 4个二进制数转成整数
            for (int j = i * 4; j < i * 4 + 4; j++) {
                num <<= 1;// 左移
                num |= (binary.charAt(j) - '0');// 或运算
            }
            // 直接到该整数对应的16进制,这里不用switch来做
            sb.append(hexStr[num]);
            // 这里如果要用switch case来做,大概是这个样子
            // switch(num){
            // case 0:
            // sb.append('0');
            // break;
            // case 1:
            // ...
            // case 15:
            // sb.append('F');
            // break;
            // }
        }
        String();
    }
}

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。