gpt4 book ai didi

java - 如何将填充添加到字节数组?

转载 作者:塔克拉玛干 更新时间:2023-11-03 04:52:59 26 4
gpt4 key购买 nike

我在 byteArray 中有这个 40 位 key 大小为 8,我想向其添加 0 填充,直到它变为 56 位

byte[] aKey = new byte [8];  // How I instantiated my byte array

有什么想法吗?

最佳答案

一个 8 字节的数组是 64 位的。如果将数组初始化为

byte[] aKey = new byte [8]

所有字节都用 0 初始化。如果您设置前 40 位,即 5 个字节,那么您的其他 3 个字节,即从 41 到 64 位仍然设置为 0。因此,默认情况下,您将第 41 位到第 56 位设置为 0,并且您不必须重置它们。

但是,如果您的数组已经用一些值进行了初始化并且您想清除从 41 到 56 的位,则有几种方法可以做到这一点。

首先:你可以只设置aKey[5] = 0aKey[6] = 0 这将设置第 6 个字节和第 7 个字节,它们由第 41 位到第 56 位组成, 到 0

第二:如果是处理位,也可以使用BitSet。但是,在您的情况下,我认为第一种方法要容易得多,尤其是如果您使用的是 Java 7 之前的版本,则以下某些方法不存在,您必须编写 your own methods从字节数组转换为位集,反之亦然。

byte[] b = new byte[8];
BitSet bitSet = BitSet.valueOf(b);
bitSet.clear(41, 56); //This will clear 41st to 56th Bit
b = bitSet.toByteArray();

注意:BitSet.valueOf(byte[])BitSet.toByteArray() 仅存在于 Java 7 中。

关于java - 如何将填充添加到字节数组?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19474957/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com