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語言
- 位運算 --20240310
- 理解位運算
- C# 位運算及例項計算C#
- PHP 位運算使用PHP
- 位運算小結
- 位運算-異或(^)
- 位運算總結
- 【SSLOJ 3348】位運算
- 巧用JS位運算JS
- 學習位運算
- 位運算進階
- 逍遙自在學C語言 | 位運算子&的高階用法C語言
- 逍遙自在學C語言 | 位運算子的基礎用法C語言
- 逍遙自在學C語言 | 位運算子^的高階用法C語言
- java二進位制運算十進位制(精確運算)Java
- 二進位制與二進位制運算
- 用位運算為你的程式加速
- 前端元件設計--位運算的妙用前端元件
- 計算位數最高達300位的兩個非負整數的乘積,C語言程式設計實現C語言程式設計
- C語言高效程式設計的四大祕技之使用位操作,減少除法和取模的運算C語言程式設計
- C語言進位制轉換與列印C語言
- 關於STM32的BSRR(埠位設定/清除暫存器) 和 BRR(埠位清除暫存器) 的理解(初學32)
- 談談位運算和在Android中的運用Android
- 位運算簡單操作
- Java中的位運算Java
- 位運算子的計算
- 神奇的位非運算
- JS中的位運算JS
- Java位運算小節Java
- 使用位運算進行加法運算
- 關於10進位制轉2進位制的C語言程式碼C語言