C语言中的位操作(8)--根据指定掩码选择两数之一
生活随笔
收集整理的这篇文章主要介绍了
C语言中的位操作(8)--根据指定掩码选择两数之一
小编觉得挺不错的,现在分享给大家,帮大家做个参考.
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,结果数据从b中选择,else 从a中选择
unsigned int r; //结果r= (a & ~mask) | (b & mask)
r = a ^ ((a ^ b) & mask);
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 */
转载于:https://www.cnblogs.com/xueda120/archive/2013/06/13/3134304.html
总结
以上是生活随笔为你收集整理的C语言中的位操作(8)--根据指定掩码选择两数之一的全部内容,希望文章能够帮你解决所遇到的问题。
- 上一篇: 【eoe教程】Android中自定义视图
- 下一篇: 【原】数字图像处理学习之三彩色图像处理