【发布时间】:2013-07-09 09:14:40
【问题描述】:
我有一个包含 160 位数字的二进制字符串。 我试过了:
new BigInteger("0000000000000000000000000000000000000000000000010000000000000000000000000000001000000000010000011010000000000000000000000000000000000000000000000000000000000000", 2).toByteArray()
但它返回的 15 字节数组已删除前导 0 字节。
我想保留那些前导 0 字节,保留 20 个字节。
我知道其他一些方法可以实现这一点,但我想知道是否有更简单的方法可能只需要几行代码。
【问题讨论】:
-
您可以通过
8-currentSize左侧的值为 0 的元素扩展您的数组 -
提供
binStr的示例和预期输出? -
@anubhava OP的代码行暗示:
binStr = "0011010111...11"; array = {120, -145, ..., 20}. -
你仍然不能在 8 个字节中存储 160 位 - 你需要 20 个字节。
-
您可以使用 System.arraycopy 复制复制到 8 字节数组
标签: java