• java 二进制与十六进制相互转换


    1.情景展示

    2进制如何转16进制?

    16进制如何转成2进制?

    2.具体分析

    二进制:用0和1表示(最高位为符号位,“0”表示正,“1”表示负,其余位表示数值的大小);

    十六进制:10个阿拉伯数字(0~9)和6个英文字母(a~f)共计16个字符表示。

    3.解决方案

    二进制转十六进制

    /*
     * 二进制转十六进制
     * @description:
     * @date: 2022/4/1 16:11
     * @param: binary 二进制
     * @return: java.lang.String 16进制字符串
     */
    @NotNull
    public static String toHexString(String binary) {
        if (StringUtils.isEmpty(binary) || binary.length() % 8 != 0) return "";
    
        StringBuilder hex = new StringBuilder();
        int iTmp;
        for (int i = 0; i < binary.length(); i += 4) {
            iTmp = 0;
            for (int j = 0; j < 4; j++) {
                iTmp += Integer.parseInt(binary.substring(i + j, i + j + 1)) << (4 - j - 1);
            }
            hex.append(Integer.toHexString(iTmp));
        }
    
        log.debug("二进制转十六进制:\n{}", hex);
    
        return hex.toString();
    }

    十六进制转二进制

    /*
     * 十六进制转二进制
     * @description:
     * @date: 2022/4/1 15:03
     * @param: hex 十六进制字符串
     * @return: java.lang.String 二进制字符串
     */
    @NotNull
    public static String fromHexString(String hex) {
        if (StringUtils.isEmpty(hex) || hex.length() % 2 != 0) return "";
    
        StringBuilder binaryString = new StringBuilder();
        String tmp;
        for (int i = 0; i < hex.length(); i++) {
            tmp = "0000" + Integer.toBinaryString(Integer.parseInt(hex.substring(i, i + 1), 16));
            binaryString.append(tmp.substring(tmp.length() - 4));
        }
        log.debug("十六进制转二进制:\n{}", binaryString);
    
        return binaryString.toString();
    }

    测试

    toHexString(fromHexString("2Facdfacdfbebb543531"));

     

    写在最后

      哪位大佬如若发现文章存在纰漏之处或需要补充更多内容,欢迎留言!!!

     相关推荐:

  • 相关阅读:
    day23 GUI
    day17JDK5.0新特性与正则表达式
    day12-day15集合
    day11线程
    day10-JavaAPI
    day09面向对象-
    day08面向对象-内部类、异常
    day06面向对象
    Idea导入Eclipse中的Maven Web(SSM)
    java给图片添加水印
  • 原文地址:https://www.cnblogs.com/Marydon20170307/p/16104941.html
Copyright © 2020-2023  润新知