请问下列程序的意义,有点迷惑!

来源:百度知道 编辑:UC知道 时间:2024/05/29 22:48:11
INT32S Div24( INT32S dividend )// 得到1/24值
{
return( ( dividend >> 5 ) + ( dividend >> 7 ) + ( dividend >> 9 ) + ( dividend >> 11 ) );
}

从解释来看,函数的本意是把参数除以24后,将所得的值返回给函数。 那么直接除以一个24不就行了吗,为何要用这种移位的方式来求值?

这样效率高,除法会根据不同的情况用别的方式来替代

在汇编中,计算和2的多少次方的运算都是用移位的,因为移位运算比单纯算术运算快的多,这里想必是同样的道理吧~追求效率