将两个int保存到一个int中的步骤如下:
底部字节包含块使用的扇区数。其他3 bytes包含块扇区的偏移量。
所以,如果我想提取我必须做的两个数字
int usedSectors = num & 0xFF;
int sectorOffset = num >> 8;
但是如何将两个整数保存到一个int中,例如我已经使用了Sectors和sectorOffset(我们假设usedSectors只有0到255之间的1字节范围和0到16777215之间3个字节的sectorOffset)?
答案 0 :(得分:3)
测试程序:
public class ByteTest {
public static void main(String[] args) {
int expectedUsedSectors = 4;
int expectedSectorOffset = 20000;
int num = expectedSectorOffset;
num = num << 8;
num |= expectedUsedSectors;
int usedSectors = num & 0xFF;
int sectorOffset = num >> 8;
System.out.println("used sectors expected == actual? " + (expectedUsedSectors == usedSectors));
System.out.println("offset expected == actual? " + (expectedSectorOffset == sectorOffset));
}
}
首先,我设置3字节值,然后移位8位,然后设置第二个数字。
答案 1 :(得分:2)
aggrigaated_int=0;
aggrigaated_int+=first_num;
aggrigaated_int+=second_num <<8;