我正在研究以下功能:
inline xint dtally(xint x)
{
xint t = 0;
while (x) t += 1 << ((x % 10) * 6), x /= 10;
return t;
}
我只是想知道是什么使这个功能,即计算并存储在变量t
中。
答案 0 :(得分:2)
这会计算x
中t
的基数10位数,由6个宽度的位域分隔。
请注意,每个移位长度是6的倍数。因此,如果数字为0,则移位为0,如果数字为1,则移位为6,如果数字为9,则移位为54,依此类推。 / p>
使用原因6我觉得它适合64位以下。