版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、组成原理课程设计报告( 2010 - 2011 年度第2 学期 )计算机组成原理算法实现(一)专业计算机科学与技术学生姓名班级M 计算机 081学号0851401137指导教师刘 其 明完成日期2011年 6 月 24 日计算机组成原理课程设计目录1设计目的 .12设计内容 .13实现方法 .13.1系统目标 .13.2主体功能 .34小结 .6附录.7附录 1 源程序清单 .7计算机组成原理课程设计计算机组成原理算法实现(一)1 设计目的本课程设计是在学完本课程教学大纲规定的全部内容、完成所有实践环节的基础上,旨在深化学生学习的计算机组成原理课程基本知识,进一步领会计算机组成原理的一些算法,
2、并进行具体实现,提高分析问题、解决问题的综合应用能力。2 设计内容计算机组成原理算法实现(一)能够实现定点整数的机器数表示、定点整数的变型码加减运算、定点整数的原码乘法运算和浮点数的加减运算。3 实现方法3.1 系统目标(1)实现定点整数的机器数表示,对于正数的定点整数,它的原码、补码、反码为它本身;移码为最高符号位变为 1,其他位保持不变。对于负数的原码为最高符号位为一,数值位保持不变;补码为从低位向高位找,直到找到第一不为零的位置将第一个不为零的数后 (包括第一个不为零的数) 的所有数按位取反(包括符号位);反码为符号位为 1,数值位按位取反;移码为符号位为 0,然后从低位向高位找,直到找
3、到第一不为零的位置将第一个不为零的数后(包括第一个不为零的数)的所有数按位取反(不包括符号位)。(2)定点整数变形补码加减运算算法:首先获取两个数的变形补码,获取补码的原则是:首先判断是正数还是负数,如果是正数,则将“ +”号去掉,然后将第一个“ 0”变成“ 00”;如果是负数,则将“ - 号去掉 ,然后从低位向高位找,直到找到第一不为零的位置将第一个不为零的数后(包括第一个不为零的数)的所有数按位取反(包括符号位)。然后在通过按位加运算计算两个数的值,如果是减法也转换成加法做。(3) 定点原码乘法:乘数的每一位分别跟被乘数的每一位相乘,1*1=1,1*0|0*1|0*0=0 ,其中小数点后面
4、的第一位为两个数的符号运算。 乘数以及被乘数转化为原码形式正数直接操作, 负数第一个由零变为 1 。浮点加减法根据阶码相同阶码则后面的尾数做加减运算,阶码不相同先把阶码转化为相同的阶码,同时改变的尾数做加减法运算。按每一个界面的返回的时候就会转变为开始的界面。(4)浮点数的加减运算:首先将两个浮点数用变形补码表示。然后进行对阶运算,若两数的阶码相同,则可直接对两数的尾数进行加减运算,否则必须先使两数的阶1计算机组成原理课程设计码相同,原则是将阶码小的向阶码大的看起,再对阶码小的浮点数的尾数进行移位处理。再将两个数的尾数进行求和,并进行规格化处理,规格化处理的原则是:如果符号位是 11 并且小数
5、点后的第一位也是 1,则将尾数左移, 直到小数点后的第一个数为 0;如果符号位是 00 并且小数点后的第一个数是 0,则进行左移处理,直到小数点后的第一个数为 1;如果符号位是 10 或 01,则将尾数右移一位。最后进行舍入处理且判断溢出。流程图如下:开始浮点数 A,B将 A 、 B 的阶码和尾数用补码表示阶码是否相等NY阶码小的数的尾数右移尾数相加规格化处理结束2计算机组成原理课程设计3.2 主体功能登录界面设计系统进入(主)窗体的设计:菜单需要在输入口令正确后方可激活使用。口令输入错误时要给出重新输入口令的提示,三次口令输入错误应该禁止使用。图 1 主界面图图 2 口令正确激活使用图 3
6、口令错误重新输入图 4 三次口令错误禁止使用定点整数的机器表示选择主窗体中“定点整数机器表示”时进入下图所示的窗体:3计算机组成原理课程设计图 5 二进制数对应的原码图 6 二进制数对应的反码图 7 二进制数对应的补码4计算机组成原理课程设计图 8 二进制数对应的移码定点整数的变形补码加减运算图 9 定点整数的变形补码加减运算结果定点整数的原码乘法图 10 定点整数的原码乘法结果5计算机组成原理课程设计浮点数的加减运算图 11 浮点数的加减运算结果4 小结通过本次课程设计更好的了解了组成原理,更好的明白了组成原理的运算的实现,同时对于 JAVA 的程序运用也更为熟练。进一步了解了定点整数的各类
7、运算,以及对定点整数的各项操作。加深了对组成原理中定点整数的机器数表示,定点整数的变形补码加减法运算,定点整数的原码一位乘法运算和浮点数的加减法运算。6计算机组成原理课程设计附录附录 1 源程序清单import java.awt.*;import java.awt.event.*;importjava.io.*;import javax.swing.JOptionPane;public class Mainpublic static void main(String args)Window01 win01=new Window01( 计算机组成原理 );class Window01 exten
8、ds Frame implements ActionListenerstatic boolean boo=false;static int i=0;Button button01,button02,button03,button04,button05;Label label01,label02;TextField text01;Window01(String s)super(s);setLayout(null);button01=new Button( 定点整数的机器表示);add(button01);button01.setBounds(5,30,115,25);button02=new B
9、utton( 定点整数的变形补码加减法);add(button02);button02.setBounds(120,30,170,25);button03=new Button( 定点整数原码乘法);add(button03);button03.setBounds(290,30,110,25);button04=new Button( 浮点加减法 );add(button04);button04.setBounds(400,30,100,25);label01=new Label( 计算机组成原理算法实现(一));label01.setFont(new Font( 黑体 ,Font.BOLD,
10、25);add(label01);label01.setBounds(100,80,355,70);label02=new Label( 输入口令 :);add(label02);label02.setBounds(150,180,100,20);text01=new TextField(7);add(text01);text01.setBounds(250,180,150,20);text01.setEchoChar(*);button05=new Button( 确认 );add(button05);button05.setBounds(250,230,70,30);button01.ad
11、dActionListener(this);button02.addActionListener(this);7计算机组成原理课程设计button03.addActionListener(this);button04.addActionListener(this);text01.addActionListener(this);button05.addActionListener(this);setBounds(50,50,500,300);setVisible(true);validate();addWindowListener(new WindowAdapterImpl();public v
12、oid actionPerformed(ActionEvent e)if(e.getSource()=button05) String s=text01.getText(); if(s.equals(0851401116)boo=true;JOptionPane.showMessageDialog(this, 口令正确, 欢迎使用 , 成功登录对话框,JOptionPane.INFORMA TION_MESSAGE);text01.setText(null);else if(i=0;i-,j-,m-)if(a1i=0&a2j=0&temp=0) bm=0;temp=0;else if(a1i=
13、0&a2j=0&temp=1) bm=1; temp=0;else if(a1i=0&a2j=1&temp=0)bm=1; temp=0;else if(a1i=0&a2j=1&temp=1)bm=0;temp=1;else if(a1i=1&a2j=0&temp=0)bm=1; temp=0;else if(a1i=1&a2j=0&temp=1)bm=0; temp=1;else if(a1i=1&a2j=1&temp=0) bm=0; temp=1;12计算机组成原理课程设计else if(a1i=1&a2j=1&temp=1) bm=1;temp=1;char c=new charb.l
14、ength-1;if(b0=b1) if(b0=0) c0=+;String s=new String (b);s.getChars(2, s.length(), c, 1);String code1=new String(c);text03.setText(code1);else if(b0=1) c0=-;String s=new String (b);s.getChars(s.lastIndexOf(1), s.length(), c, s.lastIndexOf(1)-1); String ss=s.substring(2,s.lastIndexOf(1); ss=ss.replace
15、All(0, ;);ss=ss.replaceAll(1, );ss=ss.replaceAll(;, 1);ss=ss.replaceAll(, 0);ss.getChars(0,ss.length(),c,1);String code1=new String(c);text03.setText(code1);else boo=true;JOptionPane.showMessageDialog(this, 结 果 溢 出 , 警 告 对 话 框 ,JOptionPane.WARNING_MESSAGE);else if(e.getSource()=button03) char a2=s2.
16、toCharArray();s2.getChars(s2.lastIndexOf(1), a2.length, a2, s2.lastIndexOf(1);String ss=s2.substring(0,s2.lastIndexOf(1);ss=ss.replaceAll(0, ;);ss=ss.replaceAll(1, );ss=ss.replaceAll(;, 1);ss=ss.replaceAll(, 0);ss.getChars(0,ss.length(),a2,0);char a1=s1.toCharArray();int temp=0;char b=new chara1.len
17、gth;for(int i=a1.length-1,j=a2.length-1,m=b.length-1;i=0;i-,j-,m-) if(a1i=0&a2j=0&temp=0) bm=0;temp=0;else if(a1i=0&a2j=0&temp=1) bm=1; temp=0;else if(a1i=0&a2j=1&temp=0)bm=1; temp=0;else if(a1i=0&a2j=1&temp=1)13计算机组成原理课程设计bm=0; temp=1; else if(a1i=1&a2j=0&temp=0)bm=1; temp=0;else if(a1i=1&a2j=0&tem
18、p=1) bm=0; temp=1; else if(a1i=1&a2j=1&temp=0)bm=0;temp=1;else if(a1i=1&a2j=1&temp=1) bm=1; temp=1;char c=new charb.length-1;if(b0=b1)if(b0=0) c0=+;String s=new String (b);s.getChars(2,s.length(),c,1);String code2=new String(c);text04.setText(code2);else if(b0=1) c0=-;String s=new String (b);s.getCh
19、ars(s.lastIndexOf(1), s.length(), c, s.lastIndexOf(1)-1); String str=s.substring(2,s.lastIndexOf(1); str=str.replaceAll(0, ;);str=str.replaceAll(1, );str=str.replaceAll(;, 1);str=str.replaceAll(, 0);str.getChars(0,str.length(),c,1);String code2=new String(c);text04.setText(code2);else boo=true;JOpti
20、onPane.showMessageDialog(this, 结 果 溢 出 , 警 告 对 话 框 ,JOptionPane.WARNING_MESSAGE);elseif(e.getSource()=button04)dispose();class Window04 extends Frameimplements ActionListenerchar number1,number2,rusult; Label label01,label02,label03,label04; TextField text01,text02,text03; Button button01,button02,b
21、utton03; Window04(String s)super (s); setLayout(null);14计算机组成原理课程设计label01=new Label( 定点整数的原码乘法);add(label01);label01.setBounds(50, 40, 250, 50);label01.setFont(new Font( 黑体 ,Font.BOLD,25);label02=new Label( 请输入被乘数:);add(label02);label02.setBounds(50,100,100,20);text01=new TextField(5);add(text01);t
22、ext01.setBounds(150,100,100,20);label03=new Label( 请输入乘数 :);add(label03);label03.setBounds(50,130,100,20);text02=new TextField(5);add(text02);text02.setBounds(150,130,100,20);label04=new Label( 乘法结果为 :);label04.setBounds(50,160,100,20);add(label04);text03=new TextField(9);add(text03);text03.setBound
23、s(150,160,100,20);button01=new Button( 输入 );button02=new Button( 乘法 );button03=new Button( 返回 );add(button01);add(button02);add(button03);button01.setBounds(60,205,50,30);button02.setBounds(150,205,50,30);button03.setBounds(240,205,50,30);button01.addActionListener(this);button02.addActionListener(t
24、his);button03.addActionListener(this);setBounds(200,200,350,250);setVisible(true);validate();public void actionPerformed(ActionEvent e)if(e.getSource()=button01) text01.requestFocusInWindow();else if(e.getSource()=button03) dispose();else if(e.getSource()=button02)String s1=text01.getText(); char a=
25、0,0,0,0,0,0; s1.getChars(1,5,a,2); String s2=text02.getText(); char b=new char4;s2.getChars(1,5,b,0); char c=0,0,0,0,0,0; char t=new char9; for(int i=3;i=0;i-)if(bi=0)15计算机组成原理课程设计 ti+5=c5;for(int j=5;j=1;j-)cj=cj-1;elseB. 加 (c,a,c); ti+5=c5;for(int j=5;j=1;j-)cj=cj-1;t4=c5; t3=c4; t2=c3; t1=c2;if(s
26、1.regionMatches(0, s2, 0, 1) t0=(char)(+);else t0=(char)(-);String code=new String(t);text03.setText(code);class Window05 extends Frame implements ActionListenerchar 阶码 1,尾数 1,阶码 2,尾数 2,加法阶码 ,加法尾数 ,减法阶码 ,减法尾数 ; Label label01,label02,label03,label04,label05,label06,label07,label08,label09; TextField text01,text02,text03,text04,text05,text06,text07,text08;Button button01,button02,button03,button04; Window05(String s)super(s); setLayout(null);lab
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 李玫瑾漫画儿童 心理学
- 法学专业评估整改方案
- 海南省农垦实验中学2024-2025学年高三上学期9月月考地理试题(含答案)
- 宁夏行政职业能力模拟9
- 2018年7月14日安徽省公务员考试面试真题
- 关于成立化工公司投资计划书
- 2015年2月7日山西大同天镇县统计局调查监测中心面试真题
- 河北省公务员面试模拟182
- 安徽行政职业能力模拟38
- 河南行政职业能力测验模拟139
- 仓库安全管理方法
- (完整版)机房安全检查表
- 信息资源建设-习题集(含答案)
- 砌体结构施工实训报告总结
- 20CS03-1一体化预制泵站选用与安装一
- 安全教育不咬手指头
- 2024年4月自考00015英语(二)试题
- (正式版)JBT 14660-2024 额定电压6kV到30kV地下掘进设备用橡皮绝缘软电缆
- 湖北省阳新县枪弹山矿区建筑石料用石灰岩矿矿产资源开发利用与生态复绿方案
- 2023年全国统一高考英语试卷(北京卷)(含答案)
- Unit4ExploringLiteratureIntegratedskills话题作文与课文结合学案高中英语译林版
评论
0/150
提交评论