#include
#include
#include
//與1對應的二進位制進行比較,&邏輯與,相同num加1
//右移1位,再次比較
//最終得到的num值為所求二進位制數中1的個數
int fun(int n)
return num;
}int main()
int fun1(int n)//去掉最後一位
int fun2(int n)//在最後加乙個0
int fun3(int n)//在最後加乙個1
int fun4(int n)//把最後一位變成1
int fun5(int n)//把最後一位變成0
int fun6(int n)//最後一位取反
int fun7(int n, int k)//把右數第k位變成1
int fun8(int n, int k)//把右數第k位變成0
int fun9(int n, int k)//右數第k位取反
int fun10(int n, int k)//取末三位//取末k位
return n#
}void fun12(int n, int k)//取右數第k位
//k位為0
else
//k位為1
}int fun13(int n)//把右數連續的1變成0
else
}int num2 = 0;
while(k >= 0)
return n^num2;
}int fun14(int n)//把右邊第乙個0變成1
else
num = num / 2;
}num = pow((double)2, k-1);
return n|num;
}int fun15(int n)//把右邊連續的0變成1
else
}int num3 = 0;
while(k >= 0)
return n|num3;
}void itoa_n(int n)//十進位制數轉二進位制數
int main()
位運算介紹與簡單應用示例
位運算在演算法的編寫,程式的簡化中有著極其重要的作用。首先我們來了解以下什麼是位運算 以c語言為例 位運算是基於二進位制來進行計算的,而乙個數字以二進位制在計算機進行儲存的時候都會以補碼的方式進行儲存。此處涉及的原碼 反碼 補碼 我就不做贅述了,讀者可以自己去查查計算機基礎類的書,一般都會有介紹。接...
C語言位操作的神應用(位操作)
不少 通過位操作,解題很巧妙,學習語言,就要學其精髓,學其底層,不可蜻蜓點水 例一 函式getbits x,p,n 返回x中從右邊數第p位開始向右數n位的字段 unsigned getbits unsigned x,int p,int n return x p n 0 x p n 把期望獲得的字段移...
位操作應用 異或
0abcdef題意 購買了n對襪子,每對襪子都有自己的名字 即7個字元 丟失了乙隻,找出丟失的襪子的名字。首先想到的是對二維字元陣列排序,這樣很費空間。還有一種做法就是用異或操作。用兩個字串a和b分別記錄前一次的結果和新輸入的字串,對同下標的字元進行異或操作,最後結果就是a。異或運算滿足交換律 b ...