计算机组成原理实验报告Word文档下载推荐.docx
- 文档编号:20932699
- 上传时间:2023-01-26
- 格式:DOCX
- 页数:57
- 大小:399.31KB
计算机组成原理实验报告Word文档下载推荐.docx
《计算机组成原理实验报告Word文档下载推荐.docx》由会员分享,可在线阅读,更多相关《计算机组成原理实验报告Word文档下载推荐.docx(57页珍藏版)》请在冰豆网上搜索。
乘数以及被乘数转化为原码形式正数直接操作,负数第一个由零变为1
浮点加减法根据阶码相同阶码则后面的尾数做加减运算,阶码不相同先把阶码转化为相同的阶码,同时改变的尾数做加减法运算。
按每一个界面的返回的时候就会转变为开始的界面。
(4)浮点数的加减运算:
首先将两个浮点数用变形补码表示。
然后进行对阶运算,若两数的阶码相同,则可直接对两数的尾数进行加减运算,否则必须先使两数的阶码相同,原则是将阶码小的向阶码大的看起,再对阶码小的浮点数的尾数进行移位处理。
再将两个数的尾数进行求和,并进行规格化处理,规格化处理的原则是:
如果符号位是11并且小数点后的第一位也是1,则将尾数左移,直到小数点后的第一个数为0;
如果符号位是00并且小数点后的第一个数是0,则进行左移处理,直到小数点后的第一个数为1;
如果符号位是10或01,则将尾数右移一位。
最后进行舍入处理且判断溢出。
流程图如下:
(5)当用户遇到不懂的问题或者是然间操作上有疑问,可以有地方寻求帮助。
从而使这款软件更加的为用户着想,得到好评。
3.2
主体功能
登录界面设计
编写Buttonbutton=newButton("
确认"
);
语句,使得确认按钮为button。
紧接着创建新的事件。
这是一个窗口如图1,用户需要在框里填写密码,具体是passwrod.equals(text1.getText()语句来获取框里的内容。
然后比较是否正确。
如果正确则显示“欢迎进入”界面(图2)。
如果不正确,则显示“口令错误重新输入”(图3)。
并且通过staticintm=0;
语句来记录用户输入的次数,直到m==3时,系统自动关闭如图4所示.
图1主界面图
图2口令正确激活使用
图3口令错误重新输入
图4三次口令错误系统自动关闭
3.3定点整数的机器表示
点击主界面的按钮“定点整数的机器表示”,进入图5所示界面。
根据提示,在框中输入一个二进制数并点击按钮原码,该二进制数的原码则显示在下一个框中如图6。
对于正数的定点整数,它的原码、补码、反码为它本身,移码为最高符号位变为1,其他位保持不变。
反码为符号位为1,数值位按位取反(图7);
补码为从低位向高位找,直到找到第一不为零的位置将第一个不为零的数后(包括第一个不为零的数)的所有数按位取反(包括符号位)语句为if(yuan[b-1]=='
1'
)break;
b--;
(图8);
移码为符号位为0,然后从低位向高位找,直到找到第一不为零的位置将第一个不为零的数后(包括第一个不为零的数)的所有数按位取反(不包括符号位)如图9所示。
图5定点整数的机器表示界面
图6二进制对应的原码
图7二进制对应的反码
图8二进制对应的补码
图9二进制对应的移码
3.4定点整数的变形补码加减运算
点击主界面的按钮“定点整数的变形补码加减运算”,进入图10所示界面。
根据提示,在第一、第二个框中分别输入一个数。
点击按钮“加法”“减法”得到值,如图11所示。
利用语句if(me1==1)Strings1=work1(jt1.getText());
Strings2=work2(jt2.getText());
if(s1.length()>
s2.length())r=s1.length();
elser=s2.length();
charc[]=newchar[r];
chard[]=newchar[r];
来计算加法。
如果是减法也转换成加法做。
然后在通过按位加运算计算两个数的值。
图10定点整数的变形补码加减运算界面
图11定点整数的变形补码加减运算界面
3.5定点整数的原码乘法
选择主窗体中“定点整数的原码乘法”时进入图12所示的窗体界面。
点击按钮“乘法”得到值,如图13所示。
chartemp1[]=newchar[n1+n2-4];
chartemp2[]=newchar[n1+n2-4];
语句功能是实现两数相乘。
乘数以及被乘数转化为原码形式正数直接操作,负数第一个由零变为1。
语句
if(b[y]=='
)ss1.getChars(2,n1,temp2,0);
else{for(intg=0;
g<
n1+n2-4;
g++)。
作用是得到两数之和。
图12定点整数的原码乘法界面
图13定点整数的原码乘法结果
3.6浮点数的加减运算
选择主窗体中“浮点数的加减运算”时进入图14所示的窗体:
Stringg1=dJ(da,db);
语句是获得阶码之间的差。
Stringss=sg.substring(index+1)
ss1=ss.replaceFirst("
0"
"
00"
语句来获得第一个数的补码,以此类推。
使用语句if(jie!
=0){g6=jM(g3,jie);
g6=hZ(g6);
}来判断是否溢出。
如图15所示。
图14浮点数的加减运算界面
图15浮点数的加减运算结果
3.7帮助
选择主窗体中“帮助”时进入图16所示的窗体界面。
简单的一个小程序,并没有完善其功能。
也可以没有这个选项。
具体语句是Buttonbutton5=newButton("
帮助"
功能是按钮命名为帮助。
内容显示语句为JOptionPane.showMessageDialog(null,"
这是一个功能简单的小程序"
提示"
JOptionPane.ERROR_MESSAGE);
}
图16帮助按钮显示功能
4设计小结
这次计算机组成原理课程设计使我的能力得到了很大的提高,此外使我对上学期所学的计算机组成原理的知识得到了提高,加深了对计算机工作原理的认识。
我也体会到了作为一个大学生,要想学有所得,就得学习主动,不要什么都希望别人亲自传授,面对问题要自己去努力解决,多问问身边的同学,多动手查查,多上网找找,所以要想成功就得事事做到细心,耐心,恒心。
这次的课程设计,加强了我们动手、思考和解决问题的能力。
巩固和加深了对计算机加法器的并行进位和串行进位的理解,提高综合运用所学知识解决问题的能力。
培养了我们选用参考书,查阅手册及文献资料的能力。
培养独立思考,深入研究,分析问题、解决问题的能力。
通过Java软件的使用,让我们对其中的原理能清楚的掌握。
此外,培养了我严肃认真的工作作风,逐步建立正确的生产观念、经济观念和全局观念。
而且做课程设计同时也是对课本知识的巩固和加强,平时看课本时,有些问题就不是很能理解,做完课程设计,那些问题就迎刃而解了。
而且还可以记住很多东西。
认识来源于实践,实践是认识的动力和最终目的,实践是检验真理的唯一标准。
所以这个期末测试之后的课程设计对我们的作用是非常大的。
这次的课程设计使我懂得了理论与实际相结合是很非常重要的,只有理论知识是远远不够的,只有把所学的理论知识与实践相结合起来,从理论中得出结论,才能真正为社会服务,从而提高自己的实际动手能力和独立思考的能力。
在整个设计过程中,构思是很花费时间的。
当然,有时用错了方法,总是实现不了。
同时在设计的过程中发现了自己的不足之处,对以前所学过的知识理解得不够深刻,掌握得不够牢固。
通过本次课程设计进一步了解了定点整数的各类运算,以及对定点整数的各项操作。
加深了对组成原理中定点整数的机器数表示,定点整数的变形补码加减法运算,定点整数的原码一位乘法运算和浮点数的加减法运算。
更好的了解了组成原理,更好的明白了组成原理的运算的实现,同时对于JAVA的程序运用也更为熟练。
经过将近一个月的的计算机组成原理课程设计,让我们体会到了苦尽甘来的滋味,这次课程设计使我对上学期老师所教的计算机组成原理的知识得到了巩固和提高.
参考文献
[1]启东计算机公司.CCT-TV计算机组成原理
[2]王爱英.计算机组成原理与系统结构.北京:
清华大学出版社,2001
[3]蒋本珊,《计算机组成原理与系统结构》,北京航空航天大学出版社
[4]白中英.计算机组成原理(第五版)[M].北京:
科学出版社,2010.
附录:
Classa
package组成原理;
importjava.*;
importjavax.*;
importjavax.swing.*;
importjava.awt.event.*;
importjava.awt.*;
publicclassaextendsJFrameimplementsActionListener{
publica()
{super();
setSize(700,500);
setLocation(200,100);
setLayout(null);
setTitle("
机器数的表示"
JLabellabel1=newJLabel("
定点整数的机器数表示:
"
label1.setFont(newFont("
1,30));
label1.setBounds(170,50,500,100);
JLabellabel2=newJLabel("
请输入一个二进制数:
finalJLabellabel3=newJLabel("
该数对应的原码是:
label2.setFont(newFont("
1,20));
label3.setFont(newFont("
label2.setBounds(110,150,200,120);
label3.setBounds(110,210,200,120);
finalJTextFieldjt1=newJTextField(null,50);
finalJTextFieldjt2=newJTextField(null,50);
jt1.setBounds(330,190,200,35);
jt2.setBounds(330,250,200,35);
Buttonbt1=newButton("
输入"
Buttonbt2=newButton("
原码"
Buttonbt3=newButton("
反码"
Buttonbt4=newButton("
补码"
Buttonbt5=newButton("
移码"
Buttonbt6=newButton("
返回"
bt1.setBounds(70,350,80,30);
bt2.setBounds(160,350,80,30);
bt3.setBounds(250,350,80,30);
bt4.setBounds(340,350,80,30);
bt5.setBounds(430,350,80,30);
bt6.setBounds(520,350,80,30);
this.add(label1);
this.add(label2);
this.add(label3);
this.add(jt1);
this.add(jt2);
this.add(bt1);
this.add(bt2);
this.add(bt3);
this.add(bt4);
this.add(bt5);
this.add(bt6);
this.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
this.setVisible(true);
bt1.addActionListener(newActionListener()
{
publicvoidactionPerformed(ActionEvente1)
{
jt1.requestFocus(true);
}
});
bt2.addActionListener(newActionListener()
{
Stringshu=jt1.getText();
inta=shu.length();
charyuan[]=shu.toCharArray();
charzhong[]=shu.toCharArray();
if(zhong[0]=='
+'
)
{yuan[0]='
0'
;
for(inti=1;
i<
a;
i++)
{yuan[i]=zhong[i];
}
}
-'
Stringshu1=newString(yuan);
jt2.setText(shu1);
}
bt3.addActionListener(newActionListener()
{if(zhong[i]=='
yuan[i]='
elseyuan[i]='
label3.setText("
该数对应的反码是:
}
bt4.addActionListener(newActionListener()
intb=a;
while(b>
=1)
{
if(yuan[b-1]=='
break;
b--;
}
for(inti=1;
b-1;
{if(zhong[i]=='
yuan[i]='
elseyuan[i]='
该数对应的补码是:
bt5.addActionListener(newActionListener()
该数对应的移码是:
bt6.addActionListener(newActionListener()
setVisible(false);
newdl().setVisible(true);
}
});
@Override
publicvoidactionPerformed(ActionEvente){}
}
Classb
publicclassbextendsJFrameimplementsActionListener{
intme1=0,r;
Stringss1,ss2;
publicb()
setSize(700,550);
setLayout(null);
setTitle("
定点整数变形补码加减法"
JLabellabel1=newJLabel("
定点整数变形补码加减运算:
label1.setFont(newFont("
label1.setBounds(150,20,500,100);
JLabella1=newJLabel("
请输入第一个数:
JLabella2=newJLabel("
请输入第二个数:
JLabella3=newJLabel("
加法结果:
JLabella4=newJLabel("
减法结果:
la1.setFont(newFont("
la1.setBounds(100,150,200,50);
la2.setFont(newFont("
la2.setBounds(100,210,200,50);
la3.setFont(newFont("
la3.setBounds(162,270,100,50);
la4.setFont(newFont("
la4.setBounds(162,330,100,50);
finalJTextFieldjt2=newJTextField(n
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 计算机 组成 原理 实验 报告