C语言实现16位二进制变量特定位判断与赋值操作
#include <stdio.h>
int main() {
// 假设a的二进制形式为 0010 0000 0000 0000
unsigned short a = 0x2000;
unsigned short b, c;
if ((a & 0x2000) != 0) {
// 第二位为1
b = 2;
printf('b = %d
', b);
}
if ((a & 0x2000) == 0 && (a & 0xFFFE) != 0) {
// 第二位不为1,且其他位不全为0
c = 2;
printf('c = %d
', c);
}
return 0;
}
解释:
(a & 0x2000) != 0用于判断a的第二位是否为1。(a & 0x2000) == 0 && (a & 0xFFFE) != 0用于判断a的第二位是否不为1且其他位不全为0。b = 2和c = 2分别用于执行相应的赋值操作。printf用于输出结果。
**注意:**这里假设 a 的二进制形式为 0010 0000 0000 0000,可以根据实际情况修改 a 的值。
原文地址: https://www.cveoy.top/t/topic/pikB 著作权归作者所有。请勿转载和采集!