我有一个字节数组,每个字节都有一个 8 位字节。假设我想修改数组第一个元素的第 5 位而不更改任何其他内容。有什么简单的方法吗?
问问题
3410 次
2 回答
5
如果你想设置它,做
bytes[0] |= (byte) (1 << 5);
...它是字节数组中的第一个元素,二进制表示为 1,向左移动 5 位...这与设置第 5 位相同。
如果要清除第 5 位,请执行
bytes[0] &= (byte) ~(1 << 5);
于 2013-03-13T00:56:26.147 回答
1
如果你有byte[] a
,你可以使用这样的位操作修改第一个元素的第 5 位:
设置为 1:a[0] |= 1<<5
设置为 0:a[0] &= ~(1<<5)
如果你想要一个更好的 API 来包装位操作,请查看 BitSet 类。
于 2013-03-13T01:00:04.317 回答