繁体   English   中英

如何将十六进制字符串转换为带前导零的二进制字符串?

[英]How to convert Hex String to binary string with leading zeros?

假设我有一个十六进制字符串0F0A 我需要输出为0000111100001010 我尝试了以下方法,但这会返回111100001010 - 我也需要前导0000

public static String hexToBinary(String hex) {
    return new BigInteger(hex, 16).toString(2);
}

你快到了......只需要格式化它:

   String string = "0f0a";
   String value = new BigInteger(string, 16).toString(2);
   String formatPad = "%" + (string.length() * 4) + "s";
   System.out.println(String.format(formatPad, value).replace(" ", "0"));

formatPad 是填充器(每个十六进制符号为 4 位)...在您的情况下为16

试试这个代码:

String hexToBinary(String hexString) {
    int i = Integer.parseInt(hexString, 16);
    String binaryString = Integer.toBinaryString(i);
    String padded = String.format("%8s", Integer.toBinaryString(i)).replace(' ', '0') 
    return padded;
}

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM