gpt4 book ai didi

java - 将字节数组中每个字节的最后 3 位存储到新的字节数组

转载 作者:行者123 更新时间:2023-12-01 18:33:07 25 4
gpt4 key购买 nike

我有一个字节数组:byte[] test= new byte[100];我想读取数组测试中每个字节的 3 位 并将其存储在新数组中(例如:byte[] result)您能告诉我最好的方法吗?

byte[] test= new byte[15];
test[0]=0;
test[1]=1;
test[2]=2;
test[3]=3;
test[4]=4;
test[5]=5;
test[6]=6;
test[7]=7;
test[8]=8;
test[9]=9;
test[10]=10;
test[11]=11;
test[12]=12;
test[13]=13;
test[14]=14;

byte[] bitSet = new byte[8];
int offset =0;
int result = 0;
while (offset < test.length){
for (int i = 0; i < bitSet.length; i++) {

bitSet[i] = (byte) (test[offset] & 7 );
System.out.println(bitSet[i]);
offset++;

}
}
result = ((bitSet[0] << 7) + (bitSet[1] << 6) + (bitSet[2] << 5) + (bitSet[3] << 4) + (bitSet[4] << 3)
+ (bitSet[5] << 2) + (bitSet[6] << 1) + (bitSet[7] << 0));

System.out.print(result);

我已经尝试了上面的代码,但在 bitSet[i] = (byte) (test[offset] & 7 ); 行失败了。有人可以看一下吗!我对编程真的很陌生

最佳答案

for 循环就可以解决问题

for (int i = 0; i < test.length; i++) {
result[i] = test[i] & 7; // get the 3 lower bits, use whatever "mask" you need
}

关于java - 将字节数组中每个字节的最后 3 位存储到新的字节数组,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23245618/

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