如何在 java 中将字节的最后(第 8)位更改为零?

How to change the last (8th) bit of a byte to zero in java?

我有一个字节例如:

"10000110" 即十进制的 97

我不知道正确的顺序,有些地方写的是 "01100001",重点是我说的是十进制数 97,它存储在我们的应用程序中的单个字节中。

我们的应用程序中这个数据位置不需要大于 100 的数字,我们想在最后(第 8 位) 中存储额外的布尔数据对应的字节,所以..

  1. 我想在第 8 位写一个 0 之后我已经读过那个位的布尔信息。

所以这样我将从第 8 位开始得到布尔数据,然后我可以将第 8 位写入零,这样我就可以读取我的字节以获得十进制数。 (因为我们只使用 0-100 之间的值,所以最后一位应始终为零。)

不知道说的够不够清楚,有什么问题欢迎留言。


简而言之,我的问题是:

如何将 0 写入 Java 中的一个字节的最后一位?

97 十进制为 61(十六进制)或 1100001(二进制)

如果你想使用high-order位(10000000二进制或80十六进制)来存储其他信息,你可以这样做:

byte b = 97;
// Set the high-order bit to 1
byte c = b | 0x80;

// Determine if the high-order bit is set or not
boolean bitIsSet = (c & 0x80) != 0;

// clear the high-order bit (remove the high-order bit to get the value)
byte d = c & 0x7F;

我希望这很清楚并能回答您的问题。