今天研究HashMap的时候,听到一个说法,取模的运算的效率很差。取模运算的效率为什么差呢?
[code="java"]
static int indexFor(int h, int length) {
return h & (length-1);
}
[/code]
取模的效率是比 & 低。比&多一些操作。
绝大多数情况下用取模就够,相对来说也比较直观。
[quote="NanguoCoffee"][code="java"]
static int indexFor(int h, int length) {
return h & (length-1);
}
[/code]
取模的效率是比 & 低。比&多一些操作。
绝大多数情况下用取模就够,相对来说也比较直观。
[/quote]
貌似 除法的效率本身就很差,加减法 移位这些都能够直接通过 加法器这类的门来直接得出结果,
除法却要分为除法可分解为一系列减法和移位
不知道是不是这个原因!
加法 还得分解为 位操作 来进行
Java中的取模相对于C/C++它还支持浮点数的取模,6.1 % 1.5 结果为0.1,浮点数在计算机中的处理不如整数快