如何转换"二进制"将256个字符串的字符串文字转换为十六进制表示法?

时间:2015-08-01 10:34:30

标签: java hex

我有0和1个字符串类型组合,总长度为256。

如何将其转换为十六进制?

我可以使用64或更小长度的组合来做,但是当长度为256时不能这样做

你可以帮我吗?任何例子? 非常感谢提前。

1 个答案:

答案 0 :(得分:4)

最简单的方法是使用BigInteger。只要你有足够的内存,它就能够转换任意长度的String:

String str = "100010110101...";
String hex = new BigInteger(str, 2).toString(16);

如果不使用中间BigInteger将输入字符串拆分为固定长度的块(也适用于任意长度的输入字符串),实现此转换也不是很困难:

public static String binToHex(String str) {
    int l = str.length();
    StringBuilder result = new StringBuilder();
    int cur = 0;
    for (int next = l - l / 32 * 32; next <= l; next += 32) {
        result.append(Long.toHexString(Long.parseLong(
                str.substring(cur, next), 2)));
        cur = next;
    }
    return result.toString();
}