就像在主题中。我正在编写必须尽可能多地保存 RAM 的应用程序。我想将字节分成两部分,每部分 4 位(数字从 0 到 15) - 如何保存并稍后读取这些值?
问问题
3570 次
2 回答
4
如果您想要在一个字节中存储 2 个数字(范围 0-15),这里有一个关于如何保存和恢复它们的示例。请注意,您必须确保您的原始数字在允许的范围内,否则这将不起作用。
// Store both numbers in one byte
byte firstNumber = 10;
byte secondNumber = 15;
final byte bothNumbers = (byte) ((firstNumber << 4) | secondNumber);
// Retreive the original numbers
firstNumber = (byte) ((bothNumbers >> 4) & (byte) 0x0F);
secondNumber = (byte) (bothNumbers & 0x0F);
另外值得注意的是,如果你想尽可能多地节省内存,你不应该从 Java开始。JVM 已经自己消耗内存了。本地语言更适合这一要求。
于 2013-07-18T11:13:21.507 回答
3
你可以得到较低的位
byte lower = b & 0xF;
高位为
byte higher = (b >> 4) & 0xF;
回到一个字节
byte b = (byte) (lower + (higher << 4));
于 2013-07-18T11:04:13.177 回答