位运算是C语言里的重要运算,常见于单片机操作寄存器的C语言编程中。下面用大小写字母相转换的例子来理解C语言中的位运算。
#include<stdio.h>
void main() {
char ch,c;
printf("input a char:\n");
scanf("%c",&ch);
printf("\n");
while (!(ch >= 'A' && ch <= 'z') || (ch > 'Z' && ch < 'a')) {
// >= 的优先级大于&&的,!的优先级大于||的
printf("input error! please input again:\n");
scanf("%c", &ch); // 用来存放回车
printf("%c\n", ch);
scanf("%c", &ch); // 用来存放实际的 ch
}
if (ch & 0x20) { // 如果是是小写 写0x20 或 32都可以
ch = ch & 0xdf; // 或233 char类型兼容十进制、十六进制的运算
}
else {
ch = ch | 0x20; // 或 32
}
printf("\n*\n%c\n", ch);
scanf("%c", &c); // 用来吸收回车
}