1

我想读取 64kb 块中的数据。通常,实际需要的数据并不完全是这个大小,例如 2760 字节。我不确定是否有一个简单的计算可​​以用来读取 64kb 或多个它。我希望我能解释清楚。

感谢您的帮助。

4

1 回答 1

3

要进行四舍五入,您可以使用公式

int rounded_size = (size + BLOCK_SIZE - 1) / BLOCK_SIZE * BLOCK_SIZE;

如果块大小也是 2 的幂,则可以简化为

int rounded_size = (size + BLOCK_SIZE - 1) & ~(BLOCK_SIZE - 1);

要查找块数,您可以使用

int blocks = (size + BLOCK_SIZE - 1) / BLOCK_SIZE;

或者

int blocks = (size + BLOCK_SIZE - 1) >> BLOCK_BITS;
于 2013-09-29T11:35:56.330 回答