1 / 12
文档名称:

实验9位运算应用.ppt

格式:ppt   大小:1,098KB   页数:12页
下载后只包含 1 个 PPT 格式的文档,没有任何的图纸或源代码,查看文件列表

如果您已付费下载过本站文档,您可以点这里二次下载

分享

预览

实验9位运算应用.ppt

上传人:dyx110 2020/4/21 文件大小:1.07 MB

下载得到文件列表

实验9位运算应用.ppt

相关文档

文档介绍

文档介绍:实验要求实验要求:。。实验一实验题目:将特定位翻转实验要求:已知整数a,将整数a的右边第1、2、4、5、8位保留(右起为第1位),其它位翻转构成新a,并以八进制格式输出,请完成下面的程序。解题思路:构造整数b,使得b的右边第1、2、4、5、8位为0,其它位为1。可以看出构造一个右边第1、2、4、5、8位为1,其它位为0的数相对容易一些,故构造b,使得b的右边第1、2、4、5、8位为1,其它位为0,即b的二进制为10011011(低字节部分),然后将b取反,再与a进行异或运算。实验一参考答案:#include<>voidbinary(intx)/*函数binary用来显示一个整数的二进制位*/{intlength,i;length=sizeof(x);for(i=0;i<length*8;i++)printf("%d",(x>>(length*8-1-i))&0x01);printf("\n");}main(){inta,b;printf(“请输入整数a的值:”);scanf(“%d”,&a);printf("数值%d对应的二进制数为:",a);binary(a);b=0233;b=~b;a=a^b;printf(“处理后的数为:%o\n”,a);printf("数值%o对应的二进制数为",a);binary(a);}实验二实验题目:取一个数中某些指定位,其它位清零。实验要求:保留整数a的高8位,其余位清零,构成新数new。解题思路:构造整数x,使x满足:高8位上都是1,其余位上都为0。将x与a进行按位与运算得到新数new。x的构造方式如下:将(~0)向左移动8位。思考:如果用右移的方式构造x,需要注意什么?实验二参考答案:#include<>main(){inta,x,new;printf("请输入整数a的值:");scanf("%d",&a);x=(~0)<<8;new=a&x;printf("构成的新数是:%d\n",new);}实验三实验题目:将一个数的某些位置1,其它位不变。实验要求:保留整数a的低4~7位(最低位为0位)置成1,其余位不变,构成新数new。解题思路:构造整数x与a进行按位或运算得到新数。x满足:x的二进制数低4~7位上都是1,其余位上都为0。x的构造方式如下:将(~0)向左移动4位得11111**********,将所得数按位取反后再左移4位得0000000011110000。也可以直接用八进制表示x=0360。思考:用十六进制如何表示x?实验三参考答案:#include<>main(){inta,x,new;printf(“请输入数a:”);scanf("%d",&a);x=~(~0<<4)<<4;new=a|x;printf("构成的新数是:%d\n",new);}实验四实验题目:结构体成员的引用实验题目:使特定位翻转实验要求:翻转整数a的低8~11位(最低位为0位),其余位不变,构成新数new。解题思路:构造整数x与a进行按位异或运算得到新数。x满足:x的二进制数低8~11位上都是1,其余位上都为0。x的构造方式如下:将(~0)向左移动4位得11111**********,将所得数按位取反后再左移8位得00001**********。也可以直接用十六进制表示x=:用八进制如何表示x?实验四参考答案:#include<>main(){inta,x,new;printf(“请输入数a:”);scanf("%d",&a);x=~(~0<<4)<<8;new=a∧x;printf("构成的新数是:%d\n",new);}实验五实验题目:判断一个数的特定位是1还是0。实验内容:编写函数fun(),判断一个整数的第13位(最低位为0位)是1还是0,若是1则返回整数1,若是0则返回整数0。解题思路:判断一个整数的第13位(最低位为0位)是1还是0,需要构造整数x与其进行按位与运算,x的第13位为1,其余位都为0。如果与运算的结果为0,说明原数的第13位为0,否则说明原数的第13位为1。x的构造方式如下:将整数1左移12位。