我目前正在处理一些表示文件中偏移量的整数值,我需要将这些数字对齐16位边界,但是我不确定如何执行此操作.
例如:
First number: 89023
16-bit aligned: 89024
Second number: 180725
16-bit aligned: 180736
Third number: 263824
Already 16-bit aligned, don't need to change it.
这可能是我的数学失败最多的原因,但是如果有人可以建议如何用Java实现这一目标,我将不胜感激.
谢谢!
更新资料
我想我已经解决了,只不过是用16修改值,然后算出16缺少的内容.
因此,例如:
180725 % 16 = 5
16 - 5 = 11
180725 aligned to 16-bits is: 180736
有人可以确认我做的正确吗?
解决方法:
是的,那行得通. 16位边界对齐仅确保它是16的倍数.在此执行的操作是确保该值达到下一个取整的值16.
// find how far off of alignment you are, 0-15
offset = num % 16
// determine how much further you need to move the value to achieve 16 bit alignment
// only use if offset > 0, otherwise you are already good
val = 16 - offset
标签:alignment,bit,binary,java
来源: https://codeday.me/bug/20191030/1971045.html