bitwise operation 面試考題


2. 白板題給一個 8-bit size的值求最高位元是在第幾個bit
3. SET BIT(n) = 1, CLEAR BIT(n) = 0
寫function 把某個數的第x個bit改成1或0 (改成1直接用or、改成0用mask 之後and)

4. 判斷是否是2的次方
5. 判斷一整數是偶數還是奇數
    return x & 1; //回傳1odd, 0 even;
6. 請擷取出Input中的第七個bit值?
    return (x & 64(1000000)) >> 6;
    return (x >> 6) & 1
7. 請擷取出Input中的第N個bit值?
    int Get_N_bit(int x, int n){
         return (x >> (n-1)) & 1
    }

8. 計算有幾個位元是 1

   for (; n !=0; n >>= 1) if (n&1 == 1) ++i
  1. int count_bits2(unsigned int n) {  
  2.     int i=0;  
  3.     for ( ; n != 0; n >>= 1)  
  4.         if (n & 1)  
  5.             ++i;  
  6.     return i;  

留言

這個網誌中的熱門文章

面試 (網路搜尋的資源)