有 Java 编程相关的问题?

你可以在下面搜索框中键入要查询的问题!

用于Java的八进制Base8 API

我想将byte[]编码为Base8字符串,即0编码为7。当然,Base64是常用的,并且内存占用较少。但是,我需要进行Base8编码。是否有任何API可用于此,或者我必须编写自己的API?谢谢


共 (1) 个答案

  1. # 1 楼答案

    如果有多个字节,则不清楚Base8是如何工作的。我假设您希望最小化消息的大小,以便

    // print in base 8 (or octal)
    String text = new BigInteger(1, bytes).toString(8);
    

    要做相反的事情,你可以做

    byte[] bytes = new BigInteger(text, 8).toByteArray();
    if (bytes.length > 1 && bytes[0] == 0) {
        // remove the first byte
    }