0

Base8 String ie) 0 to 7byte[]にエンコードしたい。もちろん、Base64 が一般的に使用されており、メモリ フットプリントが少なくなっています。ただし、Base8 エンコーディングを行う必要があります。これに使用できる API はありますか、それとも自分で作成する必要がありますか? ありがとう

4

1 に答える 1

2

複数のバイトがある場合、基数 8 がどのように機能するかは明確ではありません。メッセージのサイズを最小限に抑えたいと思うので、

// 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
}
于 2012-12-04T13:40:01.823 に答える