2012-07-08 74 views
0

我正在写一个文件格式库,存储嵌入式文件。寻找最接近的块范围

1个文件的结尾和另一个文件的开头之间的空间不是固定的大小。这是最接近的高位0x1000。例如,如果File1以0xAC4654结尾,则File2将从0xAC5000开始。

我想不出一种方法来计算这个。

回答

2

假设你只是想四舍五入到最接近的为0x1000,然后将下面的代码就足够了:

Math.Ceiling((float)value/0x1000) * 0x1000; 
+0

那完美。谢谢! – 2012-07-08 05:54:55

+1

如果你超过2^23字节(8 MB),你会失去精确性。改用'((value - 1)| 0xFFF)+ 1'。 – 2012-07-15 22:58:36