二进制减法的简单过程

二进制减法的运算方法

二进制减法有两种运算方法,可以使用向高位借位的办法,也可以将减法转为加法

采用借位的办法不是很快捷,比较容易看错,示例如下:
1 0 1 0
-0 1 1 1
————
0 0 1 1

被减数末尾的0向前一位借1,相当于10(2)-1得到1,倒数第二位被借一位后变0,继续向前一位借,以此来得到结果,如果减数大于被减数,则需将最后的结果按位取反得到结果。

另外也可采用转换为加法的方式来计算,具体操作是将减数的符号位取反,如果符号取反后是1(即负数),须将其他数字按位取反后在加1。如减数是1111,则转化为1(符号位)0001,如计算1010 - 1111,先将1111,转化为10001,计算过程如下:

0 1 0 1 0 (10)
+1 0 0 0 1 (-15)
——————
1 1 0 1 1

得到的结果为1开头的数字,即是负数,所以须将得到的数符号位不变,其他数字按位取反在加1得到 1 0 1 0 1, 即-5,如果结果是正数的话,结果无需变化,就是最终结果。

在将加法变为减法的过程,实际就是利用补码在进行运算,由于正数的补码就是其本身,所以自需要变换负数为其补码既可。

  • 13
    点赞
  • 30
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
算术逻辑部件ALU实验报告 实验目的 熟悉硬件描述语言及开发环境,了解硬件系统开发的基本过程。 掌握ALU基本设计方法和简单运算器的数据传送通路。 验证ALU的功能。 实验环境 硬件环境:安装有Windows 7 或以上操作系统的PC,THINPAD教学计算机。 软件开发:FPGA开发工具软件Xilinx ISE 12.3或以上。 实验内容 根据实验原理中的要求,用VHDL语言实现一个简单的ALU。 在教学计算机THINPAD上验证实现的ALU的功能。 实验原理 算术逻辑部件ALU的主要功能是对二进制数据进行定点算术运算、逻辑运算和各种移 位操作等。算术运算包括定点加减乘除运算,逻辑运算主要用逻辑与、逻辑或、逻辑异 或和逻辑非等操作。ALU通常有两个数据输入端A和B输出操作数,一个数据输出端Y以及 标志位输出结果,通过输入操作码op来确定所要进行的操作,本实验通过实现一个状态 机,根据状态机状态的变化来输人操作数及操作码,并最终实现不同的运算,将结果和 标志位呈现出来。 本实验中的ALU要求实现基本的算术运算、逻辑运算、移位运算等,具体功能如下: "操作码 "功能 "描述 " "ADD "A+B "加法 " "SUB "A-B "减法 " "AND "A and B "与 " "OR "A or B "或 " "XOR "A xor B "异或 " "NOT "not A "取非 " "SLL "A sll B "逻辑左移B位 " "SRL "A srl B "逻辑右移B位 " "SRA "A sra B "算术右移B位 " "ROL "A rol B "循环左移B位 " ALU的输入数据为16位,操作码op为4位,算术运算时数据用补码表示。 实验步骤 本实验通过VHDL语言实现一个比较简单的ALU模块。 用VHDL语言编写ALU功能代码,并用状态机对其进行控制,使其完成实验要求的操作。操 作码和操作数的输入用微型开关SW0~SW15,计算结果的输出用数字机上的LED灯来展示。 将代码下载到教学机的FPGA中,并调试完成。 在THINPAD教学机上运行时,RST和时钟均用手动开关或按钮,便于演示。操作码和操作 数在开关SW0~SW15上输入,为便于观察和调试,每次ALU得到操作数,最好可以在LED上 显示一下,最后的运算结果在L0~L15上显示,标志位可自行选择显示方法。 状态机如下: RST -> 状态0 输入操作数A -> CLK -> 状态1 输入操作数B -> CLK ->状态2 输入操作码op 输出操作结果r -> CLK -> 状态3 输出标志位 ->CLK ->状态0 实验主要代码如下: (5)记录实验结果: "操作码 "A "B "结果 "标志位 "与预期一致" "ADD 0000 "00000000000000"000000000000000"000000000000001"0000 "一致 " " "01 "1 "0 " " " "SUB 0001 "00000000000000"000000000000000"111111111111111"0101 "一致 " " "00 "1 "11 " " " "ROL 1001 "11110000000000"000000000000000"111000000000000"0100 "一致 " " "00 "1 "1 " " " 思考题 时序电路。 实验总结 通过该实验,我们小子熟悉了硬件描述语言的基本语法与调试方式。掌握了ALU的基 本设计方法,并对XilinxISE开发环境有了更加深入的了解,学会了如何设计工程、如何 仿真,对THINPAD教学机器也更加熟悉了。 ----------------------- ALU实验报告全文共4页,当前为第1页。 ALU实验报告全文共4页,当前为第2页。 ALU实验报告全文共4页,当前为第3页。 ALU实验报告全文共4页,当前为第4页。
课题 《计算机中的数制转换及加减运算》 教材分析:在计算机内部采用的都是二进制,让学生理解什么是二进制二进制与十 进制之间的转换方法。 二、学情分析: 教材上这一部分写的比较简单但也比较抽象,以初一学生现在的认知结构还不是很容 易理解,而且直接引入什么"按权相加"的方法,学生必定听得一头雾水。因此,本课时 由浅入深,首先给出这些概念以帮助学生更好地理解和接受、消化吸收本节课的知识。 三、教学目标: 1、认知目标 (1)掌握进位制概念; (2)理解进制的本质; (3)掌握十进制和二进制的相互转换及二进制的加减法; (4)了解计算机所采用的数制及计算机采用二进制数的原因。 2、技能目标 掌握二进制数和十进制数转换以及加减运算规则。 3、能力目标 对学生思维能力进行拓展,激发他们探索计算机奥秘的欲望。 四、教学重点与难点: 1、难点:位权表示法 十进制转化二进制 2、重点:二、十进制间相互转换及二进制的加减法 五、教学策略: 根据生活实际,从小学开始就学习了十进制,根据十进制来学习二进制,这样比较容 易学习和掌握。 六、教学过程 (以下教师的语言、活动简称"师",学生的活动简称"生") (一)数制 6分钟 师: 同学们,大家回想一下,我们最早学习的数学运算是什么? 生:加法。加减乘除…… 师:对,我们最开始学习的就是十以内的加法,之后是两位数的加法,在两位数加法 的学习中,老师是不是经常会说,要注意逢十进一?也就是我们平常说的别忘了进位。 像这样按进位的原则进行记数的方法叫做进位记数制。"进位记数制"简称为"数制"或"进 制"。我们平时用的最多的就是十进制了,那么,大家想一下,还有没有其他的进制呢? 比如说,小时、分钟、秒之间是怎么换算的? 生 一小时等于60分钟,一分钟等于60秒。 师 那我们平时会不会说我做这件事情用了102分钟呢?不是吧?我们一般会说,我花了一个 小时零42分钟,也就是说逢六十进一,这就是60进制。由此也可以推断出,每一种数制 的进位都遵循一个规则,那就是——逢N进1。这里的N叫做基数。所谓"基数"就是数制中表 示数值所需要的数字字符的总数,比如,十进制中用0——9来表示数值,一共有10个不同 的字符,那么,10就是十进制的基数,表示逢十进一。下面我们再引入一个新概念——"位 权"。 (二)数制转换及加减运算 26分钟 大家都知道,计算机中采用的是二进制,但用计算机解决实际问题时对数值的输入输 出通常使用十进制,这就有一个十进制向二进制转换或由二进制向十进制转换的过程。 也就是说,在使用计算机进行数据处理时首先必须把输入的十进制数转换成计算机所能 接受的二进制数;计算机在运行结束后,再把二进制数转换为人们所习惯的十进制数输 出。这种将数由一种数制转换成另一种数制称为数制间的转换。 先来讲一下二进制——十进制之间的转换。下面我们结合实例来讲解一下。 1、二进制数转换成十进制数 把二进制数转换成十进制数就是用"按权相加"法,把二进制数首先写成加权系数展开 式,然后按十进制加法规则求和。 例 二—十 (B D) 进制转换 规则:各位对应的十进制值之和;各位对应的十进制值为系数与其位权之积。 例 101B= ? D 解:位 权:22 21 20 二进制数:1 0 1 计 算:4 +0 +1=5D 这个比较简单,也容易掌握,我们做两个练习题,下面我们接着看一下十进制转换成 二进制。 2、十进制数转换为二进制数 整数十—二转换 规则:连续"(向左)除2取余,直到0"。也就是说"除2取余,逆序排列",也可以用倒除 法 例 29D= ? B 解: 接着做几道题,巩固一下十进制转换为二进制。 3. 二进制运算法则 (1)加法规则:"逢2进1" 0 + 0 = 0 1 + 0 = 0 + 1 = 1 1 + 1 = 10 例 101+110=? 解: 1 0 1 + 1 1 0 1 0 1 1 所以 101+110=1011 4.减法规则:"借1当2" 0 – 0 = 0 1 – 0 = 1 1 – 1 = 0 10 – 1 = 1 例 1100-110=? 解:  1 1 0 0 - 1 1 0 1 1 0 所以 1100-110=110 课堂中可能出现的重难点突破 二进制转换成十进制 (四)巩固练习 1、进位制是人们为了计数和运算方便而约定的记数系统。 2、十进制构成: (1)由0、1……9十个数码组成;(基数为10) (2)进位方法,逢十进一; (3)采用位权表示法,即一个数码在不同位置上所代表的值不同。 3、二进制的表示方法(同样由三部分组成) (1)由0、1两个数码来描述。(基数为2) (2)逢二进一; (3)位权大小为20、21、22...2n 4、二进制与十进制的相互转换 (1)、二进制转十进制——按权位展开 (

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值