试图理解内联函数

时间:2014-11-29 03:37:28

标签: c inline-functions

我正在研究以下功能:

inline xint dtally(xint x)
{
    xint t = 0;
    while (x) t += 1 << ((x % 10) * 6), x /= 10;
    return t;
}

我只是想知道是什么使这个功能,即计算并存储在变量t中。

1 个答案:

答案 0 :(得分:2)

这会计算xt的基数10位数,由6个宽度的位域分隔。

请注意,每个移位长度是6的倍数。因此,如果数字为0,则移位为0,如果数字为1,则移位为6,如果数字为9,则移位为54,依此类推。 / p>

使用原因6我觉得它适合64位以下。