欢迎来到冰点文库! | 帮助中心 分享价值,成长自我!
冰点文库
全部分类
  • 临时分类>
  • IT计算机>
  • 经管营销>
  • 医药卫生>
  • 自然科学>
  • 农林牧渔>
  • 人文社科>
  • 工程科技>
  • PPT模板>
  • 求职职场>
  • 解决方案>
  • 总结汇报>
  • ImageVerifierCode 换一换
    首页 冰点文库 > 资源分类 > DOCX文档下载
    分享到微信 分享到微博 分享到QQ空间

    计算机组成原理算法实现课程设计报告.docx

    • 资源ID:788286       资源大小:348.57KB        全文页数:32页
    • 资源格式: DOCX        下载积分:15金币
    快捷下载 游客一键下载
    账号登录下载
    微信登录下载
    三方登录下载: 微信开放平台登录 QQ登录
    二维码
    微信扫一扫登录
    下载资源需要15金币
    邮箱/手机:
    温馨提示:
    快捷下载时,用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)。
    如填写123,账号就是123,密码也是123。
    支付方式: 支付宝    微信支付   
    验证码:   换一换

    加入VIP,免费下载
     
    账号:
    密码:
    验证码:   换一换
      忘记密码?
        
    友情提示
    2、PDF文件下载后,可能会被浏览器默认打开,此种情况可以点击浏览器菜单,保存网页到桌面,就可以正常下载了。
    3、本站不支持迅雷下载,请使用电脑自带的IE浏览器,或者360浏览器、谷歌浏览器下载即可。
    4、本站资源下载后的文档和图纸-无水印,预览文档经过压缩,下载后原文更清晰。
    5、试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。

    计算机组成原理算法实现课程设计报告.docx

    1、.组成原理课程设计报告( 2011 - 2012 年度第 1 学期)计算机组成原理算法实现(二)专业计算机科学与技术学生姓名班级 B 计算机 091学号指导教师完成日期 2012 年 1 月 6 日.目录1 设计目的12 设计内容13 实现方法13.1 系统目标13.2 主体功能23.3 开发环境84 小结8附录9附录 1 源程序清单9计算机组成原理算法实现(二)1 设计目的本课程设计是在学完本课程教学大纲规定的全部内容、完成所有实践环节的基础上,旨在深化学生学习的计算机组成原理课程基本知识,进一步领会计算机组成原理的一些算法,并进行具体实现,提高分析问题、解决问题的综合应用能力。2 设计内容

    2、计算机组成原理算法实现(二)能够实现定点小数的机器数表示、定点小数的变形补码加减运算、定点小数的原码一位乘法运算和浮点数的加减运算。3 实现方法3.1 系统目标(1) 实现定点小数的机器数表示,对于正数的定点小数,它的原码、补码、反码为它本身;移码为最高符号位变为 1,其他位保持不变。对于负数的原码为最高符号位为一,数值位保持不变;补码为从低位向高位找,直到找到第一不为零的位置将第一个不为零的数后(包括第一个不为零的数)的所有数按位取反(包括符号位);反码为符号位为 1,数值位按位取反;移码为符号位为 0,然后从低位向高位找,直到找到第一不为零的位置将第一个不为零的数后(包括第一个不为零的数)

    3、的所有数按位取反(不包括符号位)。(2) 定点小数变形补码加减运算算法:首先获取两个数的变形补码,获取补码的原则是:首先判断是正数还是负数,如果是正数,则将“+”号去掉,然后将第一个“0”变成“00”;如果是负数,则将“-号去掉,然后从低位向高位找,直到找到第一不为零的位置将第一个不为零的数后(包括第一个不为零的数)的所有数按位取反(包括符号位)。然后在通过按位加运算计算两个数的值,如果是减法也转换成加法做。(3) 定点原码乘法:乘数的每一位分别跟被乘数的每一位相乘001*1=1,1*0|0*1|0*0=0,其中小数点后面的第一位为两个数的符号运算。乘数以及被乘数转化为原码形式正数直接操作,负

    4、数第一个由零变为 1。浮点加减法根据阶码相同阶码则后面的尾数做加减运算,阶码不相同先把阶码转化为相同的阶码,同时改变的尾数做加减法运算。按每一个界面的返回的时候就会转变为开始的界面。(4) 浮点数的加减运算:首先将两个浮点数用变形补码表示。然后进行对阶运算,若两数的阶码相同,则可直接对两数的尾数进行加减运算,否则必须先使两数的阶码相同,原则是将阶码小的向阶码大的看起,再对阶码小的浮点数的尾数进行移位处理。再将两个数的尾数进行求和,并进行规格化处理,规格化处理的原则是:如果符号位是 11 并且小数点后的第一位也是 1,则将尾数左移,直到小数点后的第一个数为 0;如果符号位是 00 并且小数点后的

    5、第一个数是 0,则进行左移处理,直到小数点后的第一个数为 1;如果符号位是 10 或 01,则将尾数右移一位。最后进行舍入处理且判断溢出。3.2 主体功能开始浮点数阶码是否相等NY尾数相加阶码小的数的尾数右移将 A、B 的阶码和尾数用补码表结束规格化处理.3-1 总流程图1 登陆窗口界面在此界面上有口令输入框,用户必需要输入正确的口令才能正常使用.初始密码是 0751401121,用户若输入不正确,则会弹出警告对话框(如下图 1),用户用三次机会,若三次都不能正确输入,则弹出错误对话框,提示“您已被禁用”(如下图 2),此时口令框变为不可用。输入正确的密码点确定后即能直接使用。(图一)(图二)

    6、2、定点小数机器表示窗口界面选择主窗体中“定点小数机器表示”时进入下图所示的窗体:在上面的窗体中按“输入”按扭时,将输入焦点设置为最上面的一个文本框上。输入一个带符号的二进制定点小数(如+0.11010 或-0.11010)后,按“原码”、“反码”、“补码”或“移码”按扭中的任一个后,将在第二个文本框中显示对应的机器数,同时要求将第二个标签中“原码”字样改成对应的编码字样。选择.“返回”按扭时回到主窗体。比如,用户输入-0.11010,执行相应的操作会出现相应的结果。如下列各图表示原码:(图三)(图四)反码补码:(图五)移码:(图六)(图七)3、定点小数变形补码加减运算界面(图八)在此窗口用户

    7、需要输入两个定点小数来参加运算,同上面一样,用户必需点击输入按钮,才能激活输入框。输入完毕,用户点击各个按钮,则会出现相应的结果,比如,用户输入-0.11010 和+0.01101,执行相应的操作会出现相应的结果, 如下图表示(图九)4、定点小数的原码乘法界面(图十)同样,在此界面用户必需要输入乘数和被乘数后执行乘法操作,输入前,用户必需要点击输入按钮才能接获输入框,如输入乘数为-0.11011,被乘数为- 0.11101,执行相应的操作得出相应的结果。如下图:(图十一)5、浮点数加减运算界面(图十二)在此界面,用户需要输入两个浮点数的阶码和尾数,若用户输入的数中不包 含正负号,则无法做出任务

    8、运算,当用户输入完数据后点击相应的按钮,则会出现具体的结果(本程序也包含了对溢出数据的检测),当然用户输入数据前同样要 先点击输入按钮才会激活输入框按钮,如输入第一个浮点数的阶码是+010,尾数 为+0.110110100,第二个浮点数的阶码是-100,尾数是-0.110010100,执行结果如下:(图十三)6、帮助界面(图十四)3.3 开发环境JDK 1.6NetBeans IDE 6.8Windows74 小结近一周的计算机组成原理课程设计很快就结束了,计算机组成原理是一门理论性和实践性都很强的课程,是计算机科学与技术的一门核心专业基础课。此次课程设计整个过程,从网上搜索了一些相关的资料,

    9、代码等。经过各种更改,修正,最终得以运行。得到正确的运行。但是,这次课程设计在整个的设计过程中也遇到了许多问题,最初,新建项目的时候,总是使用 java web 来创建,致使从一开始就走错了方向。老是运行不出正确的结果。而且有很多时候为了找出一个逻辑错误,要憋上好几个小时,一觉得自己的设计不行,就想着推翻进行重新设计。确实也从中看出自己了的基本功不够扎实,Java 语言运用不够熟练,平时很少自自己编写算法、上机运行和调试过,这值得自己认真反思一下,大学学习的自主性是很强的,自己平时的课余时间也是挺多的,确实应该多上机做些实际应用。很开心自己能够靠着自己的一些努力做出这样的成果。希望自己以后能够

    10、找准自己要走的方向。不要再做无用功,盲目的去做事情。就像这次的课程设计, 就是因为走了弯路盲目的去做,才导致浪费掉了很多时间。附录附录 1 源程序清单Yuepassword 模块的主要 Java 代码public void actionPerformed(ActionEvent e)String s = new String(123 if (e.getSource() = button1)while (i = 0 & m 3)JOptionPane.showMessageDialog(this,您已被禁用,错误对话框, JOptionPane.ERROR_MESSAGE);if (e.getS

    11、ource() = button2)setVisible(false); if (i = 1)ZuCheng s1 = new ZuCheng(操作菜单); s1.setVisible(true);setVisible(false);Yueyue1 模块的主要 Java 代码public void actionPerformed(ActionEvent e)if(e.getSource( )=m1)Shows1=newShow(机器数表示); s1.setVisible(true);else if(e.getSource()=m2)Form3 f1=newForm3();f1.setTitle

    12、(定点变形补码加减);.f1.setVisible(true);else if(e.getSource()=m3)Form4 f2=newForm4(); f2.setTitle(定点原码乘法);f2.setVisible(true); else if(e.getSource()=m4)Form5f5=newForm5(浮点加减); f5.setVisible(true);else if(e.getSource()=m5)Helph1=newHelp(帮助信息); h1.setVisible(true);h1.work();public void actionPerformed(ActionE

    13、vent e) if (e.getSource() = button1) me = 1; t1.requestFocusInWindow(); else if (me = 1) if (e.getSource() = button2) b3.setText(该数对应的原码为:); String sg = t1.getText();if (sg.startsWith(+) int index = sg.indexOf(+);String ss = sg.substring(index + 1); t2.setText(ss); else int index = sg.indexOf(-);Str

    14、ing ss = sg.substring(index + 1); String sf = ss.replaceFirst(0, 1); t2.setText(sf); else if (e.getSource() = button3) b3.setText(该数对应的反码为:); String sg = t1.getText();if (sg.startsWith(+) int index = sg.indexOf(+);String ss = sg.substring(index + 1);t2.setText(ss); else int index = sg.indexOf(-);Str

    15、ing ss = sg.substring(index + 1); char a = ss.toCharArray();for (int i = 2; i a.length; i+) char m = 1, n = 0;if (ai = m) ai = n; else ai = m;String se = new String(a);String sf = se.replaceFirst(0, 1); t2.setText(sf); else if (e.getSource() = button4) b3.setText(该数对应的补码为:); String sg = t1.getText()

    16、;if (sg.startsWith(+) int index = sg.indexOf(+);String ss = sg.substring(index + 1); t2.setText(ss); else int index = sg.indexOf(-);String ss = sg.substring(index + 1); char a = ss.toCharArray();for (int i = 2; i = 2; j-) if (aj - 1 = 0) aj - 1 = 1;aj = 0;break; else aj = 0;String se = new String(a)

    17、;String sf = se.replaceFirst(0, 1); t2.setText(sf); else if (e.getSource() = button5) b3.setText(该数对应的移码为:); String sg = t1.getText();if (sg.startsWith(+) int index = sg.indexOf(+);String ss = sg.substring(index + 1); String se = ss.replaceFirst(0, 1); t2.setText(se); else int index = sg.indexOf(-);

    18、String ss = sg.substring(index + 1); char a = ss.toCharArray();for (int i = 2; i = 2; j-) if (aj - 1 = 0) aj - 1 = 1;aj = 0;break; else aj = 0;String sf = new String(a); t2.setText(sf); if (e.getSource() = button6) setVisible(false); Yueyue2 模块的主要 Java 代码/获得第一个数的补码public String work1() String sg = d

    19、1.getText(); System.out.print( sdf); if (sg.startsWith(+) int index = sg.indexOf(+);String ss = sg.substring(index + 1); ss1 = ss.replaceFirst(0, 00); else int index = sg.indexOf(-);String ss = sg.substring(index + 1); char a = ss.toCharArray();for (int i = 2; i = 2; j-) if (aj - 1 = 0) aj - 1 = 1;a

    20、j = 0;break; else aj = 0;String se = new String(a);ss1 = se.replaceFirst(0, 11);return ss1;/做加法时获得第二个数的补码public String work2() String sa = d2.getText(); if (sa.startsWith(+) int index = sa.indexOf(+);String ss = sa.substring(index + 1); ss2 = ss.replaceFirst(0, 00); else int index = sa.indexOf(-);St

    21、ring ss = sa.substring(index + 1); char b = ss.toCharArray();for (int i = 2; i = 2; j-) if (bj - 1 = 0) bj - 1 = 1;bj = 0;break; else bj = 0;String sc = new String(b);ss2 = sc.replaceFirst(0, 11);return ss2;/做减法时获得第二个数的补码public String work3() String sa = d2.getText(); if (sa.startsWith(-) int index

    22、= sa.indexOf(-);String ss = sa.substring(index + 1); ss2 = ss.replaceFirst(0, 00);else int index = sa.indexOf(+);String ss = sa.substring(index + 1); char b = ss.toCharArray();for (int i = 2; i = 2; j-) if (bj - 1 = 0) bj - 1 = 1;bj = 0;break; else bj = 0;String sc = new String(b);ss2 = sc.replaceFi

    23、rst(0, 11);return ss2;/实现两数补码相加public String add1(char a1, char a2) char jg = new charr;char cf = 0; while (r 0) if (a1r - 1 = 0 & a2r - 1 = 0 & cf = 0) jgr - 1 = 0;cf = 0; else if (a1r - 1 = 0 & a2r - 1 = 0 & cf = 1) |(a1r - 1 = 0 & a2r - 1 = 1 & cf = 0) |(a1r - 1 = 1 & a2r - 1 = 0 & cf = 0) jgr -

    24、1 = 1;cf = 0; else if (a1r - 1 = 0 & a2r - 1 = 1 & cf = 1) |(a1r - 1 = 1 & a2r - 1 = 0 & cf = 1) |(a1r - 1 = 1 & a2r - 1 = 1 & cf = 0) jgr - 1 = 0;cf = 1; else if (a1r - 1 = 1 & a2r - 1 = 1 & cf = 1) jgr - 1 = 1;cf = 1; else jgr - 1 = a1r - 1;r-;String result = new String(jg); return result;Yueyue3 模块的主要 Java 代码/被乘数转化为原码形式public String work1( ) String a1 = t1.getText( ); if (a1.startsWith(+) int index


    注意事项

    本文(计算机组成原理算法实现课程设计报告.docx)为本站会员主动上传,冰点文库仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知冰点文库(点击联系客服),我们立即给予删除!

    温馨提示:如果因为网速或其他原因下载失败请重新下载,重复下载不扣分。




    关于我们 - 网站声明 - 网站地图 - 资源地图 - 友情链接 - 网站客服 - 联系我们

    copyright@ 2008-2023 冰点文库 网站版权所有

    经营许可证编号:鄂ICP备19020893号-2


    收起
    展开