目录
【程序51】题目:学习使用按位与 & 。
【程序52】题目:学习使用按位或 | 。
【程序53】题目:学习使用按位异或 ^ 。
【程序54】题目:取一个整数a从右端开始的4~7位。
【程序55】题目:学习使用按位取反~。
【程序51】题目:学习使用按位与 & 。
程序分析:0&0=0; 0&1=0; 1&0=0; 1&1=1
程序源代码:
#include "stdio.h"
main()
{
int a,b;
a=077;
b=a&3;
printf("40: The a & b(decimal) is %d n",b);
b&=7;
printf("40: The a & b(decimal) is %d n",b);
}
【程序52】题目:学习使用按位或 | 。
程序分析:0|0=0; 0|1=1; 1|0=1; 1|1=1
程序源代码:
#include "stdio.h"
main()
{
int a,b;
a=077;
b=a|3;
printf("40: The a & b(decimal) is %d n",b);
b|=7;
printf("40: The a & b(decimal) is %d n",b);
}
【程序53】题目:学习使用按位异或 ^ 。
程序分析:0^0=0; 0^1=1; 1^0=1; 1^1=0
程序源代码:
#include "stdio.h"
main()
{
int a,b;
a=077;
b=a^3;
printf("40: The a & b(decimal) is %d n",b);
b^=7;
printf("40: The a & b(decimal) is %d n",b);
}
【程序54】题目:取一个整数a从右端开始的4~7位。
程序分析:可以这样考虑:
(1)先使a右移4位。
(2)设置一个低4位全为1,其余全为0的数。可用~(~0<<4)
(3)将上面二者进行&运算。
程序源代码:
main()
{
unsigned a,b,c,d;
scanf("%o",&a);
b=a>>4;
c=~(~0<<4);
d=b&c;
printf("%on%on",a,d);
}
【程序55】题目:学习使用按位取反~。
程序分析:~0=1; ~1=0;
程序源代码:
#include "stdio.h"
main()
{
int a,b;
a=234;
b=~a;
printf("40: The a's 1 complement(decimal) is %d n",b);
a=~a;
printf("40: The a's 1 complement(hexidecimal) is %x n",a);
}



