java - 如何将位写入字节?

标签 java byte java-6 bitset

我目前有 16 位想要设置为变量(2 个单独的字节)。我使用 BitSet 对象来保存我的位,而在 Java 1.7 中有一个 toByteArray() 方法,我需要一些可以在早期版本的 Java 上工作的东西。它不需要使用 BitSet,但我更喜欢它(如果可能的话)。

如果有人能告诉我如何将 01101011 之类的东西写入一个字节,我认为这对我有足够的帮助。谢谢!

最佳答案

您可以使用这段代码来做到这一点:

public static byte convert(BitSet bits, int offset) {
  byte value = 0;
  for (int i = offset; (i < bits.length() && ((i + offset) < 8)) ; ++i) {
    value += bits.get(i) ? (1 << i) : 0;
  }
  return value;
}

因此,要转换两个字节,您将执行以下操作:

BitSet b = ....;
byte b1 = Helper.convert(b, 0);
byte b2 = Helper.convert(b, 8);

关于java - 如何将位写入字节?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12126662/

相关文章:

java - “SwingUtilities.updateComponentTreeUI(this)”从 JComboBox 中删除自定义文档

java - 如何从java中的输出流中按 block 获取数据?

java - 在 Java 6 上从 keystore 中提取证书

java - Spring Quartz 始终使用 RAM Job Store

java - 我的密码程序的 while 循环和字符串比较

c - 了解字节交换

byte - 需要多少位来寻址这么多的内存?

javascript - 如何锁定(或沙箱)JDK 的内置 Javascript 解释器以运行不受信任的脚本

java - 将 T[](其中 T 是 Byte[])返回到 Byte[]

java - 在 Java 中将原始类型作为输出参数传递