C ++:长达64kb

我想读64kb的数据块。 通常情况下,实际所需的数据不是这个大小,例如2760字节。 我不知道是否有一个简单的计算,我可以用来读64kb或多个它。 我希望我能解释得很好。

感谢您的帮助。

做四舍五入你可以使用公式

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

如果块大小也是二的幂这可以简化为

 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;