Java 中的位数据类型

3

我正在用Java编写一个需要进行位处理和操作的程序。但是我找不到任何“位”级原始数据类型。在Java中有没有定义“位”数据类型的方法? 在C/C++中,我们可以告诉编译器为变量存储分配多少位

struct bit {
    unsigned int value : 1;   // 1 bit to store value
};

我该如何在Java中实现相同的功能?

2个回答

5

booleanBoolean,使用 truefalse(或者 Boolean.TRUE / Boolean.FALSE)。两种类型都可以使用自动装箱和拆箱。此外还有一个BitSet用于处理位向量。


有趣的是,Oracle表示布尔类型的大小并没有精确定义,尽管它用于存储1位信息:https://docs.oracle.com/javase/tutorial/java/nutsandbolts/datatypes.html - ThisClark

3

根据你所说的“位”的含义而定。

如果你想使用单个位,请使用booleantrue/false

如果你想要多位字段,则必须使用整数类型(byteshortintlong),并且要自己进行掩码操作。也有BitSet这样的面向对象实现,但对于小型(<64位)集合,它可能比掩码操作慢,尽管更易读。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接