我在一篇文章中读到一种技术,可以让你将数字 X 向上舍入,使其成为 Y 的倍数。
int roundup(int x, int y) {
return ((x+y-1) & ~(y-1));
}
int main() {
int x = 1020; // number to round up
x = roundup(x, 512);
return 0;
}
此代码示例将 X 舍入为 1024,但它没有解释舍入函数中发生的情况,因此我要求对此进行解释。
我在一篇文章中读到一种技术,可以让你将数字 X 向上舍入,使其成为 Y 的倍数。
int roundup(int x, int y) {
return ((x+y-1) & ~(y-1));
}
int main() {
int x = 1020; // number to round up
x = roundup(x, 512);
return 0;
}
此代码示例将 X 舍入为 1024,但它没有解释舍入函数中发生的情况,因此我要求对此进行解释。