0
我想在沒有按位運算符的情況下執行此計算。在沒有按位運算符的情況下執行計算
unsigned result = (1u << 5);
其結果將是32.我知道這是轉換二進制1
到100000
,但我想沒有位操作執行同樣的事情。
我想在沒有按位運算符的情況下執行此計算。在沒有按位運算符的情況下執行計算
unsigned result = (1u << 5);
其結果將是32.我知道這是轉換二進制1
到100000
,但我想沒有位操作執行同樣的事情。
既然你知道,2 是32,你可以只使用:
否則,如果你只是想使用位位移值,有兩種方法。第一個是一個循環:
unsigned result = 1u;
for (size_t i = 0; i < 5; result *= 2u, i++);
或非環版本:
static unsigned int shft[] = {1u, 2u, 4u, 8u, 16u, 32u, ... };
unsigned int result = 1u * shft[5]; // or just shft[5] if it's always '1u *'.
'無符號結果= 1; for(int i = 0; i <5; ++ i)result * = 2;' –
微積分?哪裏?它不應該是計算嗎? – Annabelle