如何在Java中有效地舍入(floor)整数?

时间:2011-12-04 12:38:33

标签: java android math bit-manipulation

我需要从整数中提取“数千”(例如1345 - > 1; 24378 - > 24),因为我的应用程序要做很多事情,所以我需要有效地完成这项工作。

当然,除以1000总是一种选择,但是划分是一项昂贵的操作,所以我正在寻找更高效的东西。

目标平台是Android,据我所知,目前大多数Android平台都没有数学协处理器,所以最喜欢的方法是通过逐位操作来实现,尽管我无法弄清楚如何做到这一点,如果可能的话......

2 个答案:

答案 0 :(得分:6)

数学协处理器对浮点运算有很大的帮助,但只需每个现代CPU就可以进行有效的整数除法。

说真的,只做分频操作,几乎肯定是最好的选择。虽然比特移位有利于除以2的幂(如1024),但它不是那么好。

答案 1 :(得分:2)

int总是采用非小数回答。所以使用

int i=24378/1000;

1000分之24378= 24.378   但是int将需要24