预览加载中,请您耐心等待几秒...
1/8
2/8
3/8
4/8
5/8
6/8
7/8
8/8

在线预览结束,喜欢就下载吧,查找使用更方便

如果您无法下载资料,请参考说明:

1、部分资料下载需要金币,请确保您的账户上有足够的金币

2、已购买过的文档,再次下载不重复扣费

3、资料包下载后请先用软件解压,在使用对应软件打开

#include<stdlib.h>#include<stdio.h>#include<ctype.h>voidDisplay(unsignedlongx)//显示当前值{printf("\n当前值为:0x%08x",x);}voidError(){printf("输入错误,请重新选择。");fflush(stdin);}unsignedlongfun123(unsignedlongb,charfun_num)//执行第1、2、3个功能{unsignedlongc;intn,ret_dig;//n为需要执行操作的二进制位ret_dig=scanf("%d",&n);//判断输入是否为整数if(ret_dig==0||n<1||n>32)//输入不是整数或输入整数不在范围内Error();else{switch(fun_num){case'1'://执行功能1,判断位{c=b;//因为此操作会改变值,但原始值不能变,则对中间变量进行操作c=(c>>(n-1))&1;printf("第%d位是:%d",n,c);}break;case'2'://执行功能2,将位置1{b|=(1<<(n-1));//将b的第n位置1Display(b);}break;case'3'://执行功能3,将位置0{b&=~(1<<(n-1));//将b的第n位清0Display(b);}break;}}returnb;}unsignedlongfun45(unsignedlongb,charfun_num)//执行第4、5个功能{charch;fflush(stdin);ch=getchar();if(ch=='y'||ch=='Y')//判断是否确认操作{switch(fun_num){case'4':b|=0xffffffff;//全部置1break;case'5':b&=0;//全部清0break;}Display(b);}elseprintf("没有确认,未进行任何操作");returnb;}voidBitMap(){unsignedlonga=0;//初始化32位全为0charselect;printf("初始状态下32位均为0,即");Display(a);while(1){printf("\n\n1:判断某位状态\n");printf("2:将某位置1\n");printf("3:将某位清0\n");printf("4:所有位置1\n");printf("5:所有位清0\n");printf("6:显示当前值\n");printf("7:刷新屏幕\n");printf("8:退出\n");printf("请选择功能(1~8),并回车确定:");scanf("%c",&select);switch(select){case'1':{while(1){printf("\n请输入需要判断第几位(1~32位)的状态并回车确定:");a=fun123(a,select);break;}}break;case'2':{while(1){printf("\n请输入要将第几位置1(1~32位)并回车确定:");a=fun123(a,select);break;}}break;case'3':{while(1){printf("\n请输入要将第几位清0(1~32位)并回车确定:");a=fun123(a,select);break;}}break;case'4':{printf("\n是否确定要将所有位置1?输入Y并回车确定:");a=fun45(a,select);}break;case'5':{printf("\n是否确定要将所有位清0?输入Y并回车确定:");a=fun45(a,select);}break;