CRC32 Java 更新第一位

CRC32 Java Update 1st Bit

我正在尝试为 java 中的字符串创建 CRC32。我能够用 java.util.zip.CRC32 做到这一点。现在我想根据某些条件将 crc 的第 1 位更新为 0 或 1。谁能告诉我怎么做?

这应该对最高位有帮助(不清楚哪个是第一个):

long crc = crc32.getValue();

crc &= 0x7FFFFFFF; //sets the highest bit to 0
if (yourCondition) {
    crc |= 0x80000000; //sets the highest bit to 1
}

您可以使用位掩码先清除位 1,然后添加您想要的位。

CRC32 crc = ...;
boolean condition = ...;
int crc32 = (int) crc.getValue();
int bit = condition ? 1 : 0;
crc32 = (crc32 & ~1) | bit;