51.学习使用按位与 &
程序分析:0&0=0; 0&1=0; 1&0=0; 1&1=1 。?
#include <stdio.h>
int main()
{
int a,b;
a=077;
b=a&3;
printf("a & b(decimal) 为 %d \n",b);
b&=7;
printf("a & b(decimal) 为 %d \n",b);
return 0;
}
?52.学习使用按位或 |
程序分析:0|0=0; 0|1=1; 1|0=1; 1|1=1 。?
#include<stdio.h>
int main()
{
int a,b;
a=077;
b=a|3;
printf("b 的值为 %d \n",b);
b|=7;
printf("b 的值为 %d \n",b);
return 0;
}
?53.学习使用按位异或 ^
程序分析:0^0=0; 0^1=1; 1^0=1; 1^1=0 。?
#include <stdio.h>
int main()
{
int a,b;
a=077;
b=a^3;
printf("b 的值为 %d \n",b);
b^=7;
printf("b 的值为 %d \n",b);
return 0;
}
?54.取一个整数 a 从右端开始的 4~7 位
程序分析:可以这样考虑:
(1)先使 a 右移 4 位。
(2)设置一个低 4 位全为 1,其余全为 0 的数,可用~(~0<<4)
(3)将上面二者进行 & 运算。
#include <stdio.h>
int main()
{
unsigned a,b,c,d;
printf("请输入整数:\n");
scanf("%o",&a);
b=a>>4;
c=~(~0<<4);
d=b&c;
printf("%o\n%o\n",a,d);
return 0;
}
?55.学习使用按位取反~
程序分析:~0=1; ~1=0;?
#include <stdio.h>
int main()
{
int a,b;
a=234;
b=~a;
printf("a 的按位取反值为(十进制) %d \n",b);
a=~a;
printf("a 的按位取反值为(十六进制) %x \n",a);
return 0;
}
?
|