C语言中有没有更快的乘以6的方法?

Ark*_*ure -2 c optimization

我目前正在用 C 语言编写一个程序,该程序需要尽可能快地运行,并且目前正在考虑提高某些计算执行的速度。我知道最慢的运算是乘法和除法,并且我已用左/右移位将乘法/除法替换为 2 的幂。

我想知道我是否可以对乘以 6 做类似的事情,因为似乎这个操作在我的程序中经常出现。通常它会乘以 1 或 0 的数字,我觉得应该有一个好的方法来加速这个过程,但想不出任何方法。

P__*_*J__ 5

相信你的编译器。不要过多考虑微观优化。它们通常会产生不利影响。所有版本都编译为相同的代码:

int imul6(int x)
{
    int y = x + x;
    return y+y+y;
}


int imoul6_1(int n)
{
    return ((n << 1) + n) << 1;
}

int imul6_2(int x)
{
    return x+x+x+x+x+x;
}

int imul6_3(int x)
{
    return x*6;
}
Run Code Online (Sandbox Code Playgroud)

https://godbolt.org/z/vMos69PaM