是否有任何数学实用方法来计算以下表达式?

时间:2012-01-12 13:30:01

标签: java

是否有任何数学效用方法来计算以下表达式?基本上,我需要找到小于或等于x的最大整数,可以均匀地除以N.

  x - x % N; // N is an integer.

3 个答案:

答案 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);