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

Kik*_*sha 1 java math android bit-manipulation

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

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

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

pax*_*blo 6

数学协处理器对浮点运算有很大帮助,但几乎每个现代CPU都有一个有效的整数除法.

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