Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/357.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 如何将256个字符的“二进制”字符串文字转换为十六进制表示法?_Java_Hex - Fatal编程技术网

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

Java 如何将256个字符的“二进制”字符串文字转换为十六进制表示法?,java,hex,Java,Hex,我有0和1字符串类型组合,总长度为256 如何将其转换为十六进制 我可以使用64或更少长度的组合,但长度为256时不能使用相同的组合 你能帮我吗?有什么例子吗? 非常感谢。最简单的方法是使用BigInteger。只要您有足够的内存,它就能够转换任意长度的字符串: String str = "100010110101..."; String hex = new BigInteger(str, 2).toString(16); 如果不使用中间的BigInteger,实现这种转换也不是很困难。将输入

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

如何将其转换为十六进制

我可以使用64或更少长度的组合,但长度为256时不能使用相同的组合

你能帮我吗?有什么例子吗? 非常感谢。最简单的方法是使用BigInteger。只要您有足够的内存,它就能够转换任意长度的字符串:

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();
}

到目前为止你有什么?