C语言判断无符号整型变量指定位是否为真
判断一个无符号整型变量data左起第2位和右起第2位(注:第1位为起始位)任意一位是否为真的十六进制掩码是 0x42。
解释:
- 0x42 的二进制表示为 0100 0010。
- 左起第2位和右起第2位分别对应二进制的第2位和第7位。
- 0x42 的第2位和第7位都为 1,这意味着如果data的对应位为 1,则与 0x42 进行按位与运算的结果将不为 0。
示例代码:
#include <stdio.h>
int main() {
unsigned int data = 0x1234;
unsigned int mask = 0x42;
if ((data & mask) != 0) {
printf("data 的左起第2位或右起第2位至少有一位为真。\n");
} else {
printf("data 的左起第2位和右起第2位都为假。\n");
}
return 0;
}
注意:
- 掩码的第 i 位为 1,表示要判断 data 的第 i 位是否为 1。
- 掩码的第 i 位为 0,表示不关心 data 的第 i 位是否为 1。
- 按位与运算符
&用于判断数据中指定位是否为 1。
原文地址: http://www.cveoy.top/t/topic/iWpb 著作权归作者所有。请勿转载和采集!