计算机组成原理课程设计说明书
计算机组成原理算法实现(二)
1 课程设计目的
本课程设计是在学完本课程教学大纲规定的全部内容、完成所有实践环节的基础上,旨在深化学生学习的计算机组成原理课程基本知识,进一步领会计算机组成原理的一些算法,并进行具体实现,提高分析问题、解决问题的综合应用能力。
2 课程设计内容与要求
能够实现定点小数的机器数表示、定点小数的变形补码加减运算、定点小数的原码一位乘法运算和浮点数的加减运算。
3 功能模块详细设计
3.1 main.java
该Java文件为程序的主类
在此界面上有口令输入框,用户必需要输入正确的口令才能正常使用.初始密码是123,用户若输入不正确,则会弹出警告对话框,用户用三次机会,若三次都不能正确输入,则直接退出,此时口令框变为不可用。输入正确的密码点确定后即能直接使用。
1
3.2 jqbs.java
该程序将一个二进制数转换成对应的原码、反码、补码、移码。
在上面的窗体中按“输入”按扭时,将输入焦点设置为最上面的一个文本框上。输入一个带符号的二进制定点小数(如-0.11010101)后,按“原码”、“反码”、“补码”或“移码”按扭中的任一个后,将在第二个文本框中显示对应的机器数,同时要求将第二个标签中“原码”字样改成对应的编码字样。选择“返回”按扭时回到主窗体。比如,用户输入-0.11010101,执行相应的操作会出现相应的结果。
原码:原码的数值部分是该数的绝对值,最高位表示符号位,最高位为0是正数,最高位为1是负数。
反码:正数的反码等于原码,负数的反码等于除符号位外其余二进制数码0变成1,1变成0。
正数: [x]反 = [x]原 = x 负数: 符号位不变,其余变反 补码:正数的补码等于原码,负数的补码等于反码加1。 正数: [x]补= [x]原 负数: [x]补= [x]反 +1
反码
2
补码
移码
实现定点小数的机器数表示,对于正数的定点小数,它的原码、补码、反码为它本身;移码为最高符号位变为1,其他位保持不变。对于负数的原码为最高符号位为一,数值位保持不变;补码为从低位向高位找,直到找到第一不为零的位置将第一个不为零的数后(包括第一个不为零的数)的所有数按位取反(包括符号位);反码为符号位为1,数值位按位取反;移码为符号位为0,然后从低位向高位找,直到找到第一不为零的位置将第一个不为零的数后(包括第一个不为零的数)的所有数按位取反(不包括符号位)。
3
3.3 bxbm.java
定点小数的变形补码加减法运算
补码加法: 基本公式: [x]补 + [y]补 = [x+y]补
补码减法: 基本公式: [x]补 - [y]补=[x]补 + [-y]补
当负数用补码表示后,符号位作为数据的一部分一起参加运算,运算器不用考虑参加加法运算的操作数的正负以及结果的正负,任意数的加法就可以化作正数加法来实现。
溢出:在定点数机器中,数的大小超出了定点数能表示的范围,叫溢出。 a.在定点小数机中数的表示范围是-1 在定点整数机(8位)中数的表示范围是-128 对[y]补“包括符号位求反且最末位加1”,即可得到[-y]补 在此窗口用户需要输入两个定点小数来参加运算,同上面一样,用户必需点击输入按钮,才能激活输入框。输入完毕,用户点击各个按钮,则会出现相应的结果,比如,用户输入+0.1101和+0.1110,执行相应的操作会出现相应的结果,如下图表示 定点小数变形补码加减运算算法:首先获取两个数的变形补码,获取补码的原则是:首先判断是正数还是负数,如果是正数,则将“+”号去掉,然后将第一个“0”变成“00”;如果是负数,则将“-\号去掉,然后从低位向高位找,直到找到第一不为零的位置将第一个不为零的数后(包括第一个不为零的数)的所有数按位取反(包括符号位)。然后在通过按位加运算计算两个数的值,如果是减法也转换成加法做。 4
相关推荐: