我正在尋找一種快速方法來設置基於數字返回位掩碼的方法。基本上,需要在預編號輸入時發出4個比特。這裏有一個好主意,我的意思是:在C++中快速按位查詢問題
foo(1); //返回0x000F foo(2); //返回0x00FF foo(3); //返回0x0FFF foo(4); //返回0xFFFF
我可以只使用一個大的switch語句,但我不知道輸入類型有多寬。 (這是一個模板函數)
這裏是我想的第一件事:
template <typename T> T foo(unsigned short length)
{
T result = 0xF;
for (unsigned short idx = length; idx > 0; idx--)
{
result = (result << 4 | 0xF);
}
return result;
}
,但它花費了大量的時間在做maintenence for循環。任何聰明的做法我沒有想到?
Billy3
打倒我一秒鐘。 – GManNickG 2009-07-20 05:10:14
相反,如果你使用矢量不會更快,因爲你可以使用v [1],v [2]等等,這將是一個恆定的時間操作? – Naveen 2009-07-20 05:39:54
對不起 - 我不知道數組應該有多大,因爲我不知道sizeof()函數被調用時的類型。 – 2009-07-20 05:48:37