Tag: bitset

将BitSet写入java中的文件

我有一个BitSet,并希望将其写入文件 – 我遇到了使用writeObject方法使用ObjectOutputStream的解决方案。 我查看了java API中的ObjectOutputStream,看到你可以编写其他东西(byte,int,short等) 我试着检查这个类,所以我尝试使用以下代码将一个字节写入文件,但结果给了我一个7字节而不是1字节的文件 我的问题是文件中的前6个字节是什么? 他们为什么在那里? 我的问题与BitSet有关,因为我不想开始将大量数据写入文件,并意识到我在文件中插入随机字节而不知道它们是什么。 这是代码: byte[] bt = new byte[]{‘A’}; File outFile = new File(“testOut.txt”); FileOutputStream fos = new FileOutputStream(outFile); ObjectOutputStream oos = new ObjectOutputStream(fos); oos.write(bt); oos.close(); 谢谢你的帮助 阿夫纳

Java中的OR操作(BitSet.class)

如何编写一个程序,将取001010101110000100100 …., 011100010001000011000 …., 000000000010000000000100 ….作为输入(位),输出将是这些3的OR 。 OR = 0 0 = 0, 0 1 = 1, 1 0 = 1, 1 1 = 1, 如果sombody有一个样本程序,也会有所帮助。 我们需要将值存储在来自byte的位数组中吗?

Java:计算java.util.BitSet中设置的位数

除了通常的“保持计数器”方法之外,还有任何快速计算BitSet中设置位数的方法吗?

在Java中实现C风格的位域

我有一个问题,我有点困惑,一位同事告诉我,这将是一个寻求帮助的好地方。 我试图在Java中实现C风格的位域。 这是一个粗略的例子(此时我没有在我面前的实际代码)。 typedef union { typedef struct { unsigned short a :1; unsigned short b :1; unsigned short c :2; unsigned short d :10; } bitfield; unsigned short bitmap; }example_bitfield; 遗留代码中我有一些类似的样式位域。 我需要为Java提供等效方法的原因是我正在研究将使用Java与使用UDP的其他遗留应用程序进行通信的代码。 我没有重写代码的选项。 我知道这种方法不可移植,有字节序问题(和填充/对齐等),并且如果我能够重写代码,可以更好地完成。 不幸的是,我需要回答这个非常具体的问题。 系统已关闭,因此我不需要担心编译器/操作系统等每一种可能的组合。 使用Java EnumSet的方法不起作用,因为我相信只允许每个值为一位。 我需要能够打包值,例如d占用10位的值。 我知道Java Bitset但它有局限性。 我使用的是旧版本的Java,因此我没有一些较新的Java Bitset方法(即可能肯定有帮助的valueOf方法)。 有没有人有任何关于如何使其尽可能易于管理的想法? 我有超过10个位域需要为我的通信实现。 感谢您提供任何帮助!

转移Java BitSet

我使用java.util.BitSet来存储密集的位向量。 我想实现一个将位向右移1的操作,类似于>>> on int。 是否有一个库函数可以移动BitSet ? 如果没有,是否有比下面更好的方法? public static void logicalRightShift(BitSet bs) { for (int i = 0; (i = bs.nextSetBit(i)) >= 0;) { // i is the first bit in a run of set bits. // Set any bit to the left of the run. if (i != 0) { bs.set(i – 1); } […]