结构推理 位运算
   1.实验目的
   ①掌握按位运算的概念和方法,学会使用位运算符。
   ②学会通过位运算实现对某些位的操作。
   2.实验内容
   编写程序,上机调试并运行。
   ①取一个整数a从右端开始的4~7位。
   程序分析:
   先使a右移4位。
   设置一个低4位全为1,其余全为0的数。可用~(~0<<4)
   将上面二者进行&运算。
   理解并使用运算符。
   ②按位与&。
   程序分析: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);
   }
   ③学习使用按位或|。
   程序分析: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);
   }
   ④学习使用按位异或,^。
   程序分析: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);
   }
【正确答案】实验内容
   ①main()
   {
   unsigned a,b,c,d;
   scanf("/%o",&a);
   b=a>>4;
   c=~(~0<<4);
   d=b&c;
   printf("/%o\n/%o\n",a,d);
   }
【答案解析】