我有一个规范,它读取的列指定了结构的 16 位偏移量,另一列指定了结构的 24 位偏移量。我正在使用 java 实现该规范。 我不清楚16位偏移/24位偏移是什么意思以及如何在java中执行此类操作。
最佳答案
听起来您有一个被分割成位系列的数据。
- 第 16-23 位是“16 位偏移量”
- 第 24 位-?是“24 位偏移量”
数据可能是一个int
(32位有符号整数)或一个long
(64位有符号整数),其中位序列的某些部分分配用于存储分离较小的数据。
简单获取这些值的一种方法是使用 bit mask右 shift ,像这样:
int mask = 0xf00; // only bits 16-23 are 1
int data;
int value = data & mask; // zero other bits
value >>= 16; // shift the value down to the end
关于java - 16位偏移和24位偏移是什么意思?我如何使用java进行这样的计算,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7094019/