C程序设计教案(第9章 实验 12次)_c程序设计教案第八章

2020-02-27 教案模板 下载本文

C程序设计教案(第9章 实验 12次)由刀豆文库小编整理,希望给你工作、学习、生活带来方便,猜你可能喜欢“c程序设计教案第八章”。

实验 12 位运算一、二、实验学时:2课时 实验目标

1.掌握按位运算的概念和方法,学会使用位运算符。2.学会通过位运算实现对某些位的操作。

三、实验要求:

1.在上实验课之前,每一个同学必须将实验的题目、程序编写完毕,做好充分的准备。

2.所有实验环节均由每位同学独立完成,严禁抄袭他人实验结果,若发现有结果雷同者,按实验课考核办法处理。

四、实验步骤和内容

【启动Visual C++】  【新建工程】

 选中【C++ Source File】项,【新建源程序文件】  编辑程序  执行程序

1、编写一程序,检查所用的计算机系统的C编译在执行右移时是按照逻辑右移的原则,还是按照算术右移的原则进行操作。如果是逻辑右移,请编一个函数实现算术右移;如果是算术右移,请编一个函数实现逻辑右移。输入如下代码:

#include “stdio.h”

short ljyy(short x)//逻辑右移 {

x=x>>1;x=x&(0x7fff);//最高位补零,其余保持不变

return x;}

void main(){ short y;short x=-4;y=x;x=x>>1;if(x

printf(“x=%dn”,x);

printf(“该编译系统为算术右移!n”);} else {

printf(“x=%dn”,x);

printf(“该编译系统为逻辑右移!n”);} printf(“逻辑右移的结果为:”);y=ljyy(y);printf(“y=%dn”,y);}

1)编译、连接、和运行程序。程序运行后,观查屏幕显示结果。

2、编一个函数getbits,从一个16位的单元中取出某几位(即该几位保留原值,其余位为0)。函数调用形式为:

getbits(value,n1,n2)value为该16位数的值,nl为欲取出的起始位,n2为欲取出的结束位。如:

getbits(0101675,5,8)

表示对八进制数101675,取出其从左面起的第5位到第8位。要求把这几位数用八进制数打印出来。注意,应当将这几位数右移到最右端,然后用八进制形式输出。

【启动Visual C++】|【新建工程】|【新建源程序文件】:选中【C++ Source File】项 输入如下代码: #include “stdio.h”

short getbits(short value,int n1,int n2){ short result;short temp;int k;int i;k=16-n2;result=(0x0000);value=value>>k;for(i=0;i

temp=value&(0x0001);

temp=temp

result=result|temp;

value=value>>1;

} return result;} void main(){ short x;short y;x=0101675;y=getbits(x,5,8);printf(“y=0%on”,y);}

1)编译、连接、和运行程序。程序运行后,观查屏幕显示结果。

3、设计一个函数,使给出一个数的原码,能得到该数的补码。

要求用八进制形式输入和输出。

【启动Visual C++】|【新建工程】|【新建源程序文件】:选中【C++ Source File】项 输入如下代码: #include “stdio.h”

short buma(short x){ if(x>0)

return x;else {

x=-x;

x=~x+(0x0001);

x=x|(0x8000);} return x;}

void main(){ short x;printf(“请用八进制的形式输入变量x的值:”);scanf(“%o”,&x);printf(“补码为:%on”,buma(x));} 1)编译、连接、和运行程序。程序运行后,观查屏幕显示结果。

五、思考题

1)用程序实现原码,反码和补码的相互转化

六、实验小结:

《C程序设计教案(第9章 实验 12次).docx》
将本文的Word文档下载,方便收藏和打印
推荐度:
C程序设计教案(第9章 实验 12次)
点击下载文档
相关专题 c程序设计教案第八章 程序设计 教案 c程序设计教案第八章 程序设计 教案
[教案模板]相关推荐
    [教案模板]热门文章
      下载全文