C語言 僅用位設定和位清除表示位運算
假設位設定和位清除是不透明的,下列為了驗證表示的正確性,下面給出一種通俗易懂的實現方式:
//位設定:以m為掩碼,若m位置上為1,則將z相應位設定為1
int bis(int x,int m) {
int z = x | m;
return z;
}
//位清除:以m為掩碼,若m位置上為1,則將z相應位設定為0
int bic(int x,int m) {
int z = x & (x ^ m);
return z;
}
完整程式碼:
#include <stdio.h>
/*
Created by Marco 2017 12.28 20:27
*/
//位設定:以m為掩碼,若m位置上為1,則將z相應位設定為1
int bis(int x,int m) {
int z = x | m;
return z;
}
//位清除:以m為掩碼,若m位置上為1,則將z相應位設定為0
int bic(int x,int m) {
int z = x & (x ^ m);
return z;
}
//位運算:或
int bool_or(int x,int y) {
int result = bis(x,y);
return result;
}
//位運算:異或
int bool_xor(int x,int y) {
int result = bool_or(bic(x,y),bic(y,x));
return result;
}
//列印int值的前8位二進位制序列
void show_bits(int x) {
for (int i = 0; i < 8; ++i) {
if (x % 2 == 0)
printf("0");
else
printf("1");
x = x / 2;
}
printf("\n");
}
int main() {
show_bits(bool_xor(21,37));
}
相關文章
- C語言位運算C語言
- C語言學習筆記——位運算C語言筆記
- C語言第五篇:位運算C語言
- 關於C語言的位運算子C語言
- C語言位操作C語言
- C語言 資料的位級表示及操作C語言
- C語言位運算子及常見用法C語言
- 二進位制、位運算、位移運算
- (位運算)兩個字串的位運算字串
- 位運算
- 位運算的應用
- 運算整數C/C++位運算技巧C++
- C語言位運算子知識總結和例項分析C語言
- 理解位運算
- SQL位運算SQL
- 實用的位運算應用
- C# 位運算及例項計算C#
- C語言十進位制,八進位制,十六進位制輸出分析C語言
- 逍遙自在學C語言 | 位運算子的基礎用法C語言
- 逍遙自在學C語言 | 位運算子&的高階用法C語言
- 逍遙自在學C語言 | 位運算子^的高階用法C語言
- C語言學習第8篇---位運算子使用探究C語言
- 學習位運算
- PHP 位運算使用PHP
- 位運算進階
- 位運算總結
- 巧用JS位運算JS
- 位運算-異或(^)
- java二進位制運算十進位制(精確運算)Java
- C++位運算子C++
- 二進位制與二進位制運算
- 有趣的二進位制2—高效位運算
- 用位運算為你的程式加速
- 前端元件設計--位運算的妙用前端元件
- 使用位運算進行加法運算
- JS中的位運算JS
- 位運算簡單操作
- Java位運算小節Java