实验十二 枚举与位运算
实验十二枚举与位运算
实验目的
1.理解并掌握枚举类型的说明、枚举变量的声明及其初始化,正确使用枚举值。
2.掌握按位运算的概念和方法,学会使用位运算符,并能对一个数按二进制格式进行位操作。
要点提示
1.枚举类型定义的一般格式:
enum 枚举名{枚举列表} ;
2.枚举变量的说明:
enum 枚举名变量列表;
3.枚举变量的使用
枚举变量的值只限于列举出来的枚举元素值的范围,整数不能直接赋给枚举变量,应先进行强制类型转换才能赋值。
4.位运算符运算规则
实验内容
1.枚举类型的定义,枚举变量的说明和使用。
2.枚举变量的使用。
3.位运算符运算规则。
4.位运算应用,取一个数中某些指定位。
5.位运算应用,计算所用计算机中int数据的字长。
实验步骤
读懂并输入程序,完成填空后输出结果。(下面程序中的中文注释可以不输入)
实验1建立枚举类型weekday, 假设今日为星期二,计算10天后为星期几。
main()
{ enum weekday{sun,mon,tue,wed,thu,fri,sat};
enum weekday day;
int i;
day=tue;
i=(day+10)%7;
printf("\nthe day is:%d",【】);
}
程序运行结果:
the day is:【】
实验2
main()
{ enum weekday{sun,mon,tue,wed,thu,fri,sat};
char name[7][4]={"Sun","Mon","Tue","Wed","Thu","Fri","Sat"}; enum weekday day;
int i;
day = (enum weekday)((tue+10)%7);
printf("\nthe day is:%s", name[【】]);
}
程序运行结果:
the day is:【】
实验3
main()
{ int a=1,b=2;
if (a&b) printf("****\n");
else printf("$$$$\n");
}
程序运行结果:
【】
实验4
main()
{ unsigned a,b,c,d;
printf("\ninput a octal number(a):");
scanf("%o",&a); /* 输入一个8进制数据*/
b=【】; /* 将变量a右移4位*/
c=~(~0<<4); /* 设置一个低4位全为1,其余全为0的数*/ d=b&c;
printf("a=%o\n%o\n",a,d);
}
程序运行结果:
input a octal number(a):331
a=331
15
实验5
main()
{
int i;
unsigned int v;
v=~0; /* 将int 型单元各二进制位置为1 */
for (i=1; (v=v>>1)>0; i++) ; /* 计算int 单元中的位数*/ printf("\nThe length of INT is:%d", 【】);
}
程序运行结果:
The length of INT is: 【】