一位十进制数的2421码加法器的设计.docx_第1页
一位十进制数的2421码加法器的设计.docx_第2页
一位十进制数的2421码加法器的设计.docx_第3页
全文预览已结束

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

关键词 :2421 码 ;自补码 ;修正值 ;修正函数中图分类号 : TP39 文献标识码 :A 文章编号 :1009 - 2641 (2003) 02 - 0073 - 031引言运算器是计算机硬件组成的一部分 ,它也是 CPU 的重要组成部分 。运算器主要是用来完成算算和逻辑运算的部件 ,并具有暂存运算中间结果的功能 。运算速度是运算器的主要技术指标 。在计算机的应用中 ,如商用机和数据处理机 ,为了节省大十 二的转换时间 ,提高运算器的运算速度 ,常采用 BCD 编码 。2421 码是一种典型的 BCD 码 ,又是码 ,利用该种编码设计十进制加法器 ,可以使运算器线路简单 。2一位十进制数的 2421 码加法器的设计2. 1 2421 码的编码形式的确定 2421 码是一种有权码 ,根据其各位的权值 ,设计其编码与十进制数的对应关系如下表所示 : 十进制数01234567892421 码00000001001000110100010101100111111011112. 2 十进制的 2421 码的加法运算规则针对 2421 编码的表示形式 ,将其所有的运算及其结果列于下表 :修正前的和C1C2C3C4修正后的和S1S2S3S4修正后进位f 24212421 码相加A + B进位K十进制相加修正值0 + X0000 + X2421X00X242103 + 20011 + 001001010011010110 9 + 9 1111 + 1111 1110 1 0 1110 1 分析上表可知 ,有些 2421 编码可直接运算 ,而不需要修正 ,直接得出正确的结果 ;相反 ,有些运果必需进行修正 ,才能得到正确的结果 。总结十进制数的 2421 码加法运算法则 ,归纳如下几点 :先将两个十进制数的 2421 码按四位二进制数相加 ;当无进位并且需要修正时 ,修正值为 + 6 ;当有进位并且需要修正时 ,修正值为 - 6 ;修正过程中 ,忽略进位的产生 。2. 3 一位十进制数的 2421 码加法器的组成由十进制数的 2421 码加法运算规则可知 ,使十进制数的 2421 码加法器需要一个四位二进制器 ,还需要按修正条件确定逻辑线路 ,用以控制加 6 或减 6 。2. 3. 1 修正条件的寻找由上述算法可知 ,两组十进制数的 2421 码相加 ,不论有进位或无进位 ,都有可能进行修正 ,如下000001010110011110001111+ 6 ( + 0110)111110110011110001001101011111- 6 ( + 1010)进一步分析发现 ,表二中的各项值之间有当且仅当的关系 ,从而得出修正函数表达式与修正前结果和进位 K 值有如下关 系 : 当 K = 0 时 ,f1 = K( C1 C2 C3 C4 + C1 C2 C3 C4 + C1 C2 C3 C4 + C1 C2 C3 C4 ) = K( C1 C2 C3 + C1 C2 C4 + C1 C2 C3 C4 )当 K = 0 时 ,修正值 为 + 0110 当 K = 1 时 ,f2 = K( C1 C2 C3 + C1 C2 C3 + C1 C2 C4 )当 K = 1 时 ,修 正 值为 - 0110 ,即 + 1010 ,产 生 进位不 保留 。 综上可得 : S = K( C1 C2 C3 + C1 C2 C4 + C1 C2 C3 C4 ) + K( C1 C2 C3 + C1 C2 C3 + C1 C2 C4 )2. 3. 2 一位十进制数的 2421 码加法器设两个一位十进制数 2421 码分别为 A1A2A3A4 和 B1B2B3B4 ,C1C2C3C4 为修正前的两个 2421 码之和 ,S1 S2 S3 S4为修正后之和 ,K为进位 ,则可获得一个一位十进制数的 2421 码加法器的逻辑图 ,如下图所示 。串进行数据处理 ,可以准确地求出任意正整数的阶乘 ,并编程予以实现 。关键词 :算法 ;阶乘 ;按位相乘中图分类号 : TP39 文献标识码 :A 文章编号 :1009 - 2641 (2003) 02 - 0075 - 021 引言我们知道 ,在计算机系统中 ,由于数据 是存放在有限的存储单元中的 ,显然 ,有限的存储单元无法存放无限大的数 , 也不能存放超过其存储能力范围的数 。因此计算 机表示数值数据的范围是有限的 , 而且所 能保留的有效数字位数也是有限的 , 如在 QBASIC 语言或 C 语言中 ,均以双精度浮点 数表示数据的范围为最大 , 它们均以 8 个 字节的宽度来表示 ,但其有效数据的范围 也 不 过 在 - 1179769134862315 10308 1179769134862315 10308 之 间 。因 此 在 表 示超过此范围的庞大的数时 , 就比较难以处理 。 求某一个正整数的阶乘是一个经典的问题 ,当我们求一个较小数的阶乘时 ,可以使用传统的算法去实现 。其程序如下 :inp ut“请输入一个正整数 :”n dim p as doublep = 1for I = 1 to nP = P 3 Inext Iprint n“; ! = ”;p end当 n = 170 时 , 其 阶 乘71257415615307994D + 306 , 但 当 n 时 ,便会数据溢出 ( OverFlow) , 因此上法已不能满足求较大数的阶乘问题 ,作者给出一种利用字符串进行按位相新算法可求出任意一个正整数的阶乘2算法描述该算 法 是 利 用 字 符 串 进 行 数 据 的 ,因为一个字符型数据的长度或以 几万位 ,基本上可以满足任意一个有数据的长度 。当然 ,在进行数据相乘们也不能简单地用 n ! = n ( n - 1)2 1 来 计 算 , 而 要 采 取 按 位 相 乘 法 ,具体算法描述如下 :在运算过程中 ,我们始终把各数3结束语本文着力介绍一位

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

最新文档

评论

0/150

提交评论