C语言中的位操作(8)--根据指定掩码选择两数之一
生活随笔
收集整理的這篇文章主要介紹了
C语言中的位操作(8)--根据指定掩码选择两数之一
小編覺(jué)得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.
unsigned int a; // value to merge in non-masked bits
unsigned int b; // value to merge in masked bits
unsigned int mask; //if mask=1,結(jié)果數(shù)據(jù)從b中選擇,else 從a中選擇
unsigned int r; //結(jié)果r= (a & ~mask) | (b & mask)
r = a ^ ((a ^ b) & mask);
C測(cè)試代碼:
1 #include<stdio.h> 2 #include<string.h> 3 4 int main() 5 { 6 unsigned int a; 7 unsigned int b; 8 unsigned int mask; 9 unsigned int r; 10 a=2; b=4; mask=0; 11 r = a ^ ((a ^ b) & mask); 12 printf("%d\n",r); 13 getchar(); 14 getchar(); 15 return 0; 16 } 17 18 /* 19 a:00000010 20 b:00000100 21 ^--------- 22 (a^b):00000110 23 mask:00000000 24 &--------- 25 00000000 26 a:00000010 27 ^--------- 28 00000010 29 30 ------------------------ 31 a:00000010 32 b:00000100 33 ^--------- 34 (a^b):00000110 35 mask:00000001 36 &--------- 37 00000000 38 a:00000010 39 ^--------- 40 00000010 41 42 */?
轉(zhuǎn)載于:https://www.cnblogs.com/xueda120/archive/2013/06/13/3134304.html
總結(jié)
以上是生活随笔為你收集整理的C语言中的位操作(8)--根据指定掩码选择两数之一的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。
- 上一篇: 【eoe教程】Android中自定义视图
- 下一篇: 【原】数字图像处理学习之三彩色图像处理