计算机组成原理实验二.docx
- 文档编号:30736388
- 上传时间:2023-08-20
- 格式:DOCX
- 页数:9
- 大小:45.92KB
计算机组成原理实验二.docx
《计算机组成原理实验二.docx》由会员分享,可在线阅读,更多相关《计算机组成原理实验二.docx(9页珍藏版)》请在冰豆网上搜索。
计算机组成原理实验二
计算机组成原理
实验报告
学院(系):
软件学院
专业:
java技术应用
班级:
java1班
学号:
1315925031
姓名:
王浩
2015年11月8日
实验2运算器的编程实现
一、实验目的
1、加深对计算机中运算器的基本概念、运算方法和基本原理的理解。
2、提高学生对计算机编程语言掌握的熟练程度。
二、实验内容
运用一种编程语言实现计算器的基本功能。
思考:
1、计算机中数据是如何表示的?
2、计算机中二进制数的加、减、乘、除四则运算如何实现?
3、运算器的基本结构和功能有哪些?
3.实验结果分析
整数加法
加数
被加数
和
1
12
23
35
2
1
2
3
3
100
123
223
整数减法计算
整数减法
被减数
减数
差
1
35
12
23
2
10
5
5
3
100
56
44
整数乘法计算
整数乘法
第一个数
第二个数
结果
1
5
5
25
2
1
2
2
3
100
23
2300
整数除法计算
整数除法
第一个数
第二个数
结果
1
4
2
2
2
10
5
2
3
100
20
5
整数取余计算
整数取余
第一个数
第二个数
结果
1
5
2
3
2
10
5
5
3
11
10
1
二进制转十进制
二转十
第一个数
结果
1
1011
11
2
101
5
3
101110
46
十进制转为二进制
十转二
第一个数
结果
1
45
101101
2
10
1010
3
5
101
二进制加法
二进制加法
第一个数
第二个数
结果
1
101
101011
110000
2
1011
1111
11010
3
1110
110101
1000011
二进制减法
二进制减法
第一个数
第二个数
结果
1
11111
111
11000
2
10101
101
10000
3
11101
10101
1000
二进制原补码计算
二进制
反码
补码
00010101
00010101
00010101
10010101
11101010
11101011
10000101
11111010
11111011
通过本次实验,可以对以下问题作出回答:
1、计算机中数据是如何表示的?
计算机中数据的表示方法是:
“二进制”。
二进制是计算技术中广泛采用的一种数制。
二进制数据是用0和1两个数码来表示的数。
是用1和0代表的,用10组合出各种数字。
如0用00表示1用01表示2用10表示3用11表示......
2、计算机中二进制数的加、减、乘、除四则运算如何实现?
计算机通常都是采用补码形式进行加、减、乘、除的,对于带正负号的运算,则二进制操作数的最高位都为符号位,1位负数,0为正数。
正数的计算通常是位对齐进行相加,并进位;减法的计算是通过加补码,也就是把被减数变成补码形式,与减数相加。
乘法和除法的计算是类似10进制的乘除法,实质上都是最终转换为加法计算。
3、运算器的基本结构和功能有哪些?
运算器(ArithmeticUnit)是计算机对各种数据和信息进行算术和逻辑运算的部件,由各种逻辑电路组成,它们包括寄存器、加法器、移位器、多路选择器和一些控制电路
运算器:
arithmeticunit,计算机中执行各种算术和逻辑运算操作的部件。
运算器的基本操作包括加、减、乘、除四则运算,与、或、非、异或等逻辑操作,以及移位、比较和传送等操作,亦称算术逻辑部件(ALU)。
计算机运行时,运算器的操作和操作种类由控制器决定。
运算器处理的数据来自存储器;处理后的结果数据通常送回存储器,或暂时寄存在运算器中。
4、实验心得
通过本次实验,我对计算器里数据的表示方式以及运算原理都有了基本了解,数据的表示方法是用二进制,加减乘除原来都是转换为加法运算来计算的。
实验程序主要重点在进制转换方面,程序只完成了十进制对二进制、八进制、十六进制的转换,以后可以尝试更普遍的进制转换和互换等。
附程序:
#include
#include
#include
#definep3.1415926
#definerp/180//r=p/180,p=3.14....,p/180是求的1弧度,下面sin(里面要求的是弧度),sin(30弧度)=0.5。
voidmain()
{
floati,j,k;
intl,m,n,a[10];
charcmd;
LOOP:
system("cls");
printf("***********************\n");
printf("*******简单计算器******\n");
printf("***********************\n");
printf("\n\n本计算器提供+、-、*、/四种运算。
\n");
printf("p-代表圆周率pai。
\n");
printf("a-代表十进制转换为二进制。
\n");
printf("b-代表十进制转换为八进制。
\n");
printf("c-代表十进制转换为十六进制。
\n");
printf("d-代表该数值开方。
\n");
printf("e-代表该数值开立方。
\n");
printf("f-代表求几次方。
\n");
printf("S-代表sin。
\n");
printf("C-代表cos。
\n");
printf("T-代表tan。
\n");
printf("\n\n请输入要计算的数字和运算符号,输入“#”时,结束;输入“!
”时复位。
\n");
scanf("%f",&k);
while((cmd=getchar())!
='#')
{
if(i!
=0)
switch(cmd)
{
case'+':
scanf("%f",&i);
k=k+i;
printf("=%5.2f",k);
break;case'-':
scanf("%f",&i);
k=k-i;
printf("=%5.2f",k);
break;case'*':
scanf("%f",&i);
k=k*i;
printf("=%5.2f",k);
break;case'/':
scanf("%f",&i);
k=k/i;
printf("=%5.2f",k);
break;
case'p':
k=k*p;
printf("%6.4f",k);
break;case'f':
printf("请输入要求该数字的几次方:
");
scanf("%d",&n);
i=k;
for(m=0;m k=k*i; printf("%5.2f",k); break;case'a': printf("转换成二进制\n"); m=0; while((int)k>0) { l=k; k=k/2; l=l%2; a[m]=l; m++; } for(n=m-1;n>=0;n--) printf("%d",a[n]); break;case'b': printf("转换成八进制\n"); printf("0"); m=0; while((int)k>0) { l=k; k=k/8; l=l%8; a[m]=l; m++; } for(n=m-1;n>=0;n--) printf("%o",a[n]); break; case'c': printf("转换成十六进制\n"); printf("0x"); m=0; while((int)k>0) { l=k; k=k/16; l=l%16; a[m]=l; m++; } for(n=m-1;n>=0;n--) printf("%x",a[n]); break; case'e': printf("该数值开立方得\n"); i=pow(k,1.0/3); printf("%5.2f",i); break; case'd': printf("该数值开方得\n"); i=k/2; j=sqrt(k); printf("%5.2f",j); break;case'S': k=k*r; i=sin(k); printf("%5.2f",i); break; case'C': k=k*r; i=cos(k); printf("%5.2f",i); break;case'T': k=k*r; i=tan(k); printf("%5.2f",i); break;case'! ': gotoLOOP; } }}
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 计算机 组成 原理 实验