java - 位数组到字节 - java

标签 java arrays byte bit

如何在 bytes[] 数组中存储位序列? 更详细地说:我有一个数组

byte[] bytes;

如何将各个值(0 和 1)存储在数组的单个字节中? 我正在寻找类似的东西:

bit[] bits = new bit[8];
bits[0] = 1;
bits[3] = 1;
bytes[3] = bits[];

我希望这是有道理的。谢谢

最佳答案

void setBit(int[] array, int index, boolean value) {
    int x = index / 32;
    int y = index % 32;
    int mask = 1 << y;
    if (value) {
        array[x] |= mask;
    }
    else {
        array[x] &= (0xFFFFFFFF ^ mask);
    }
}

boolean getBit(int[] array, int index) {
    int x = index / 32;
    int y = index % 32;
    int mask = 1 << y;
    return (array[x] & mask) != 0;
}

关于java - 位数组到字节 - java,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22085046/

相关文章:

java - 从具有指定 ID 的另一个列表中获取元素列表

java - 根据条件动态提交任务到ExecutorService

Java 8 parallelstream 将返回列表收集到一个列表而不是列表列表中

python - 在Python中生成非常大的二维数组?

c# - 为什么 C# 中的 sizeof(bool) == sizeof(byte)?

java - BlueMix 在部署期间如何执行 Autowiring ?

c - 修改传递给函数的 char 数组,C

objective-c - 从 fwrite 参数获取数据数组的内容 - 使用 Objective-C 打印数据

arrays - 更改 edi 的偏移量与更改地址处的值?

c++ - Google Protocol Buffers - 对 encode decode base64 char * c string Protocol Buffer 数据感到困惑