1
考慮以下程式碼:
其作用為檢查輸入整數是否為 N 的倍數,那麼 N 為多少?
(a)
13
(b)
11
(c)
7
(b)
5
(e)
3
(f)
2
延伸問題:
2
給定 B 為 2 的某次方 (power of 2),那麼是否 A % B
等價於 (A & (B - 1))
?
(a)
是
(b)
否
延伸問題:
3
在 C 程式中,表達式 1 << 2 + 3 << 4
求值後為何?
(a)
512
(b)
16
(c)
26
(d)
52
(e)
25
延伸問題:
4
考慮某些硬體平台執行乘法的時間較長,我們會以 (x << 5) - (x)
取代 *
31,那麼 *
(-6) 該如何用 shift 搭配 add/sub 實作呢?
(a)
2 個 shift 搭配 0 個 add/sub
(b)
2 個 shift 搭配 2 個 add/sub
(c)
2 個 shift 搭配 1 個 add/sub
(d)
1 個 shift 搭配 1 個 add/sub
(e)
0 個 shift 搭配 2 個 add/sub
延伸問題:
5
考慮以下整數乘法的實作程式碼:
上述 OP
對應到下方哪個程式敘述呢?
(a)
ret = n << c;
(b)
ret += n;
(c)
ret <<= n;
(d)
ret = c << n;
(e)
ret += n << c;
延伸問題: