因为物理计算机上不存在位数据类型。您可以在大多数现代计算机上分配的最小分配是一个字节,也称为八位字节或 8 位。当您显示一个位时,您实际上只是通过算术将第一个位从字节中拉出并将其添加到一个仍使用 8 位空间的新字节中。如果你想把位数据放在一个字节中,你可以,但无论你使用什么编程语言,它都会被存储为至少一个字节。
您可以将字节加载到 BitSet 中。这种抽象隐藏了操作单个位的血腥细节。
import java.util.BitSet;
public class Bits {
public static void main(String[] args) {
byte[] b = new byte[]{10};
BitSet bitset = BitSet.valueOf(b);
System.out.println("Length of bitset = " + bitset.length());
for (int i=0; i<bitset.length(); ++i) {
System.out.println("bit " + i + ": " + bitset.get(i));
}
}
}
$ java Bits
Length of bitset = 4
bit 0: false
bit 1: true
bit 2: false
bit 3: true
Run Code Online (Sandbox Code Playgroud)
您可以要求任何位,但长度告诉您过去的所有位length() - 1都设置为0(false):
System.out.println("bit 75: " + bitset.get(75));
bit 75: false
Run Code Online (Sandbox Code Playgroud)