题目:编写一个小程序,将输入的大写字母转换为小写字母,输入的小写字母转换为大写字母,要求用位操作完成转换过程。
#include <stdio.h>
#include <conio.h>
void main()
{
char ch,temp;
printf("请输入一个字母:\n");
ch=getchar();
temp=getchar();
while(!(ch>'A' && ch<'z') || (ch>'Z' && ch<'a'))
{
printf("输入有误,请重新输入一个字母:\n");
ch = getchar();
}
if(ch & 32)
{
ch=ch & 223;// 使第五位为0,变大写 A 65 100 0001
}
else
{
ch=ch | 225;// 使第五位为1,变小写 a 97 110 0001
}
putchar(ch);
printf("\n");
}
例如:a=3,b=4,现在想将a、b变量的值交换位置,我们传统的做法是定义多一个temp变量,而现在temp去度蜜月了,怎么办?
通过异或交换a,b两个变量的值。
a=a∧b;
b=b∧a;
a=a∧b; 这种方法也常应用于加密算法。