如何在 java 中将字节的最后(第 8)位更改为零?
How to change the last (8th) bit of a byte to zero in java?
我有一个字节例如:
"10000110"
即十进制的 97
。
我不知道正确的顺序,有些地方写的是 "01100001"
,重点是我说的是十进制数 97,它存储在我们的应用程序中的单个字节中。
我们的应用程序中这个数据位置不需要大于 100 的数字,我们想在最后(第 8 位) 中存储额外的布尔数据对应的字节,所以..
- 我想在第 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;
我希望这很清楚并能回答您的问题。
我有一个字节例如:
"10000110"
即十进制的 97
。
我不知道正确的顺序,有些地方写的是 "01100001"
,重点是我说的是十进制数 97,它存储在我们的应用程序中的单个字节中。
我们的应用程序中这个数据位置不需要大于 100 的数字,我们想在最后(第 8 位) 中存储额外的布尔数据对应的字节,所以..
- 我想在第 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;
我希望这很清楚并能回答您的问题。