gpt4 book ai didi

java - 字节到 BitSet 的转换

转载 作者:行者123 更新时间:2023-12-01 17:22:34 25 4
gpt4 key购买 nike

我使用以下代码进行转换:

public static BitSet fromByte(byte b){
BitSet bs = new BitSet(8);
for (int i=0; i<8; i++){
if ((b & (1 << i)) > 0){
bs.set(i);
}
}
int length = bs.length();

return bs;
}

输出为 {0, 3, 4, 5, 6}(来自 bs 的调试器显示) - 设置位的索引。我认为这应该代表长度= 7的1001111,但这是错误的,因为1001111是79,而不是121。另外我希望长度为8。基本上我想要一个长度为8的bitSet,它正确地代表任何字节数。我的期望是 01111001 并且调试器的显示显示 {1,2,3,4,5,7}

最佳答案

字节中的位是从右到左编号的,而不是从左到右编号的。这就是设置位 {0, 3, 4, 5, 6} 定义此模式的原因:

7 6 5 4 3 2 1 0
0 1 1 1 1 0 0 1

关于java - 字节到 BitSet 的转换,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17492762/

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