是否有任何数学效用方法来计算以下表达式?基本上,我需要找到小于或等于x的最大整数,可以均匀地除以N.
x - x % N; // N is an integer.
答案 0 :(得分:4)
对于正整数:(x / N)* N。
(如果需要严格小于x vs< = x则使用((x-1)/ N)* N,对于x> 0。)
答案 1 :(得分:2)
如果x是正整数且N是2的幂,你可以做x& -N
编辑:它的-n不是2-n,感谢Peter Lawrey指出
答案 2 :(得分:0)
如果x是正整数,那么您可以使用
int result = x - x % N;
或
int result = (x/N)*N;
如果x是正双,则可以使用
int result = N * (int)(x/N);