【发布时间】:2017-01-25 15:18:32
【问题描述】:
我正在寻找一种方法,如何将任意长度的 byte[] 可逆地转换为 正 数字(数字中的字符串表示形式)。
BigInteger 提供了一个解决方案:
byte[] originalBytes = ...
String string = new BigInteger(originalBytes).toString();
...
byte[] decodedBytes = new BigInteger(string).toByteArray();
但是,我不确定如何优雅地摆脱负值(或在哪里存储符号)并保持过程可逆。
【问题讨论】:
-
我不确定如何保持相同的数字但删除负值。您可以将 127 加到所有数字上,但显然所有数字都会有所不同。不过这个过程是可逆的。
-
澄清“优雅地摆脱负面价值观”
-
@Tron 你是说你收到的字节没有二进制补码形式,换句话说你正在使用无符号字节?你能用一个简单的例子来扩展你的问题吗?
标签: java arrays numbers biginteger