第10章 二进制算术运算
2.2 二进制数的算术运算

1
数字逻辑设计及应用 ( Digital Logic Design and Applications )
2.2.1 二进制加法运算
(Binary Addition )
•进位输入(Carry in): C in • 进位输出 (Carry out) C out • 本位和 (Sum): S
谢谢!
1011 1110 + 1000 1101
2
数字逻辑设计及应用 ( Digital Logic Design and Applications )
表2-2-1 一位二进制加法真值表
输入
输出
被加数X 加数Y 输入进位Cin
0
0
0
0
0
1
0
1
0
0
1
1
1
0
0
1
0
1
1
1
0
3
1
1
1
和S 进位输出Cout
0
0
1
0
1
0
0
1
1
0
0
1
0
1
1
1
数字逻辑设计及应用 ( Digital Logic Design and Applications )
2.2.2 二进制减法运算
(Binary Subtraction )
• 借位输入 (Borrow in): Bin • 借位输出 (Borrow out): Bout • 本位差 (Difference bit): D
1010 1010 – 0101 0101
4
数字逻辑设计及应用 ( Digital Logic Design and Applications )
任务二 学习二进制数算术运算

任务二学习二进制数算术运算同十进制运算一样,二进制也可以进行加、减、乘、除运算。
在生产实际控制中,当设备具有多个负载时,每个负载对应一个位元件。
为了便于编写控制程序和提高控制能力,常将多个位元件组合为一个整体,这些位元件的组合称为字节元件或字元件。
一、二进制数绝对值的运算1.加法运算【例1-2】求1001B+1011B的和。
运算法则0+0=0 0+1=11+0=1 1+1=102.减法运算【例1-3】求1011B-110B的差。
运算法则0-0=0 1-0=11-1=0 10-1=13. 乘法运算【例1-4】求110B×10B的积。
运算法则0×0=0 0×1=01×0=0 1×1=14. 除法运算 【例1-5】求1 0010B ÷10B 的商。
运算法则:从被除数的高位开始减 去除数,够减时商为1,不够减时 商为0。
从高位向低位继续做下去, 就可以得到所求的商。
二、二进制正负数的表示法在多位二进制数中,规定最高位是符号位,符号位的数值为0表示正数,为1表示负数,这种表示方法称为二进制原码表示法。
例如,十进制数+36和- 36的原码分别写作:三、字节、字1. 字节 8位二进制数的组合称为字节,字节的高4位和低4位称为半字节。
一个字节有符号二进制数原码对照表2. 字字通常由若干个字节组成,2个字节组成的字有16位16位字有符号二进制数原码对照表某灯光显示电路由八盏灯组成,初始状态时Y1和Y0灯亮。
要求电路状态按表中指定状态变化,分析应作何种运算。
灯光显示电路状态表。
BIN(二进制)算术运算指令

4.2.4 F23(D+)
F23(D+)为32位数据相加存储在指定单元的指令,其功能是 将由S1指定的32位常数或32位数据存储单元中的数据(S1为低16 位,S1+1为高16位)与由S2指定的32位数据存储单元(S2为低 16位,S2+1为高16位)中的数据相加,结果存在数据存储单元D 和D+1中,如图4-13所示。指令格式及操作数范围如表4-18所示。
表4-21 指令格式及操作数范围
4.2.8 F28(D-)
F28(D-)为32位数据相减存储在指定单元的指令,其功能是
将由S1指定的32位常数或32位数据存储单元中的数据(S1为低16 位,S1+1为高16位)与由S2指定的32位数据存储单元(S2为低16 位,S2+1为高16位)中的数据相减,结果存在数据存储单元D和D +1中,如图4-17所示。指令格式及操作数范围如表4-22所示。
图4-21 除法指令的功能
表4-26 指令格式及操作数范围
4.2.13 F35(+1)
F35(+1)为16位数据加1指令,其功能是将D指定的16位 数据加1,结果仍存储在D中,如图4-22所示。指令格式及操 作数范围如表4-27所示。
当触发信号X1接通时,数据寄存器DT1中的数据加1,结果 仍存储在DT1中。若DT1=HFFFF,则指令执行一次后DT1= H0。如果计算结果出现溢出(R9009接通),可使用F36(D +1)指令(32位数据加1),此时要先用F89(EXT)指令将 16位数据转换成32位数据。
。 存器DT2、DT1中的数据相乘,结果存储在DT8、DT7、DD中
图4-19 指令的功能
表4-24 指令格式及操作数范围
4.2.11 F32(%)
F32(%)为16位数据的除法指令,其功能是将S1指定的16位数 除以S2指定的16位数,商存储在D中,余数存储在特殊数据寄存器 DT9015中,如图4-20所示。指令格式及操作数范围如表4-25所示。
二进制算术运算和逻辑运算

1、二进制的算术运算二进制数的算术运算非常简单,它的基本运算是加法。
在计算机中,引入补码表示后,加上一些控制逻辑,利用加法就可以实现二进制的减法、乘法和除法运算。
(1)二进制的加法运算二进制数的加法运算法则只有四条:0+0=0 0+1=1 1+0=1 1+1=10(向高位进位)例:计算1101+1011的和由算式可知,两个二进制数相加时,每一位最多有三个数:本位被加数、加数和来自低位的进位数。
按照加法运算法则可得到本位加法的和及向高位的进位。
(2)二进制数的减法运算二进制数的减法运算法则也只有四条: 0-0=0 0-1=1(向高位借位) 1-0=1 1-1=0例:计算11000011 00101101的差由算式知,两个二进制数相减时,每一位最多有三个数:本位被减数、减数和向高位的借位数。
按照减法运算法则可得到本位相减的差数和向高位的借位。
(3)二进制数的乘法运算二进制数的乘法运算法则也只有四条: 0 * 0 = 0 0 * 1 = 0 1 * 0 = 0 1 * 1 = 1例:计算1110×1101的积由算式可知,两个二进制数相乘,若相应位乘数为1,则部份积就是被乘数;若相应位乘数为0,则部份积就是全0。
部份积的个数等于乘数的位数。
以上这种用位移累加的方法计算两个二进制数的乘积,看起来比传统乘法繁琐,但它却为计算机所接受。
累加器的功能是执行加法运算并保存其结果,它是运算器的重要组成部分。
(4)二进制数的除法运算二进制数的除法运算法则也只有四条:0÷0 = 00÷1 = 01÷0 = 0 (无意义) 1÷1 = 1例:计算100110÷110的商和余数。
由算式可知,(100110)2÷(110)2得商(110)2,余数(10)2。
但在计算机中实现上述除法过程,无法依靠观察判断每一步是否“够减”,需进行修改,通常采用的有“恢复余数法”和“不恢复余数法”,这里就不作介绍了。
大学计算机基础大学计算机基础17

逻辑异或运算规则
A
B A⊕B 通常使用“⊕”表示逻辑异或运
0
0
0
算,当逻辑值A和B相同时,它
0
1
1
们逻辑异或运算结果为假;两
1
0
1
个逻辑值相异时,结果才
1
1
0
为真。
二进制数的算术运算
1011B+1101B的运算过程如下:
1011
+ 1101
-------------------11000
二进制数的算术运算
11000B-1101B的运算过程如下:
11011
-
1101
-----------------------
1110
二进制数的算术运算
逻辑非!
$
逻辑与∧
$
逻辑或∨
逻辑或运算规则
A
B A∨B 通常使用“+”或“∨”表示逻辑或运
0
0
0
算,当逻辑值A和B有一个为真时,
0
1
1
它们逻辑或运算结果就为真,只
1
0
1
有A和B都为假时,结果才为假。
1
1
1
逻辑或运算规则
A 灯
B
电源
逻辑或运算类似于并联电路, 并联电路中的两个开关只要有 一个合上(真)时,电路就能 通,灯就会亮(真)。
逻辑异或⊕
逻辑非运算规则
A
!
1
0
0
1
逻辑与运算规则
A
B A∧B
通常使用“×”或“∧”表示逻辑与
0
0
0
运算,当逻辑值A和B都为真
0
1
0
二进制算术加法运算题目

二进制算术加法运算题目
二进制算术加法是一种在二进制数字系统中进行的加法运算。
在回答你的问题之前,我先简要介绍一下二进制数和二进制加法的
基本原理。
二进制是一种由0和1组成的数字系统,与我们平常使用的十
进制(即十进制)数字系统不同。
在二进制系统中,每一位数字的
权值是2的幂次方,从右往左依次增加。
例如,二进制数1101表示
十进制数13,其中从右往左的位权值分别是1、2、4和8。
二进制加法的原理与十进制加法类似,但只有两个可能的数字,0和1。
当两个二进制数相加时,如果两个位上的数字相加等于0或1,则结果为该数字。
如果两个位上的数字相加等于2,那么结果为0,并将进位1添加到下一位的计算中。
现在,让我们来解决一个二进制算术加法运算题目,以便更好
地理解这个过程。
题目,计算二进制数1011和110的和。
解答:
首先,我们将两个二进制数对齐,从右到左进行逐位相加。
1 0 1 1。
+ 1 1 0。
__________。
1 0 0 0 1。
从最右边的位开始相加,1加0等于1,接下来1加1等于0并产生进位1,0加1等于1,1加1等于0并产生进位1。
最后,我们将进位1加到结果的最高位上,得到最终的和10100。
因此,二进制数1011和110的和是10100。
以上是对二进制算术加法的解答。
希望能够帮到你!如果你还有其他问题,请随时提出。
13二进制的算术运算-东北师范大学物理学院

负数的值由等效的正数值的二进制码反相后决定。 z 补码的计数体制:
负数的值由等效的正数值的二进制码反相后再加1 决定。
带符号数
反码
补码
(+11)D=(0 1011)B (-11)D=(1 1011)B 补码表示:
基数为R,位数为n的原码N,补码为
(N)补=Rn-N 以十进制为例:
1.3 二进制的算术运算
1.3.1 无符号二进制数的算术运算 1.3.2 带符号二进制数的减法运算
1.3.1 无符号二进制数的算术运算
1. 二进制加法
加法规则:0+0=0, 0+1=1, 1+1=10 例:计算两个二进制数1010和0101的和。
1010 +0101
1111
2. 二进制减法
减法规则:0-0=0,1-1=0,1-0=1,0-1=11, 例:计算两个二进制数1010和0101的差。
解:(5+2)补=(5)补+(7)补 =0101+0111
0101 +0111
=1100
1因及解决:
z 溢出的判别:
溢出 结论:当方框中的进位位与和数的符号位相反时,则 运算结果是错误的,产生溢出。
(1.3.1)
2的补码: 10-2=8
46的补码: 102-46=54
利用补码运算:
-N = (N)补-Rn
(1.3.2)
例1.3.5 利用补码计算8-2和82-46。
解:8-2=8+(2)补-10=8+8-10=6 82-46=82+ (46)补-100=36
*带符号二进制数补码的计算: (最高位为符号位)
解:
1.011
111 1010
111 1100
111 1010
周易中的二进制数学

众所周知二进制数学是16世纪初德国科学家莱布尼兹发明的。
对这个问题,至今没有人能够拿出足够的证据来否认它。
现在我可以说,不。
因为我可以证明在中国三千年前的著作《周易》中存在二进制数的使用和二——十进制数的转换编码。
而且,更简单、更先进、更科学。
图1是《周易》中的“先天八卦次序”,它由“两仪”、“四象”、“八卦”三行黑白矩形组组成。
“两仪”中有两个矩形,“四象”中有四个矩形,“八卦”中有八个矩形。
矩形的上面是八卦的卦符。
图1那么“先天八卦次序”又表示了什么,八卦的卦符又是根据什么画出来的?在“先天八卦次序”中,白矩形表示阳,可以用阳爻表示,黑矩形表示阴,可以用阴爻表示。
如果沿八卦各卦的垂直方向看“两仪”、“四象”、“八卦”中矩形的颜色,用阳爻表示白矩形,阴爻表示黑矩形,就可以画出八卦各卦的卦符。
下面我们自左向右依次写出各卦的卦符:坤:黑黑黑,卦符阴阴阴艮:黑黑白,卦符阴阴阳坎:黑白黑,卦符阴阳阴巽:黑黑白,卦符阴阳阳震:白黑黑,卦符阳阴阴离:白黑白,卦符阳阴阳兑:白白黑,卦符阳阳阴乾:白白白,卦符阳阳阳由此可见,八卦的卦符表示了八卦各卦的生成过程。
而不是江湖术士和易学专家所说的“卦符是古人用蓍草算卦得出来的”。
根据二进制数的规定:有,用1表示;无,用0表示。
我们可以得出八卦各卦阳爻和阴爻的二进制数。
下面我们写出八卦各卦阳爻的二进制数(即有阳爻为1,无阳爻为0):坤:黑黑黑,卦符阴阴阴,二进制数为000艮:黑黑白,卦符阴阴阳,二进制数为001坎:黑白黑,卦符阴阳阴,二进制数为010巽:黑黑白,卦符阴阳阳,二进制数为011震:白黑黑,卦符阳阴阴,二进制数为100离:白黑白,卦符阳阴阳,二进制数为101兑:白白黑,卦符阳阳阴,二进制数为110乾:白白白,卦符阳阳阳,二进制数为111同样,我们可以写出八卦各卦阴爻的二进制数(即有阴爻为1,无阴爻为0):坤:黑黑黑,卦符阴阴阴,二进制数为111艮:黑黑白,卦符阴阴阳,二进制数为110坎:黑白黑,卦符阴阳阴,二进制数为101巽:黑黑白,卦符阴阳阳,二进制数为100震:白黑黑,卦符阳阴阴,二进制数为011离:白黑白,卦符阳阴阳,二进制数为010兑:白白黑,卦符阳阳阴,二进制数为001乾:白白白,卦符阳阳阳,二进制数为000可见“先天八卦次序”中,八卦的二进制数排列是有规律的。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
例10.2 进行的是0123BC62+0012553A.例10.2中, 加法子程序1(D10DWD)将一对字(WORD1A与 WORD1B)加到第二对字(WORD2A与WORD2B),将和 存到第三对字(WORD3A与WORD3B)中.运算先加最 低的字: WORD1B WORD2B 和 BC62 553A 1119C
10章 第10章 二进制算术运算
D10DWD Eห้องสมุดไป่ตู้DP ; ———————加法子程序2 E10DWD PROC CLC MOV LEA LEA LEA E20: MOV AX,[SI] CX,02 SI,WORD1B DI,WORD2B BX,WORD3B
10章 第10章 二进制算术运算
ADC MOV
10章 第10章 二进制算术运算
因为不允许存储器与存储器之间直接进行数据运 算,所以可以使用寄存器来作为中间桥梁.例如, WORDA与WORDB均定义成WORD(字),要将 WORDA加到WORDB的运算,可以写出如下语句: MOV AX,WORDA ADD AX,WORDB MOV WORDB,AX
表10-1 无符号数与带符号数的最大值
格 式 无符号 带符号
字节(8位) 255 +127
字(16位) 65 535 +32 767
10章 第10章 二进制算术运算
对于不带符号的数,所有的位都表示数.8位寄存 器可容纳的最大值是255(28-1),16位寄存器可容纳的 最大值是65 535(216-1).带正负号的数最高位表示正负 号.在计算机中加,减法指令对于是否有正负号并不 加以区别,而是所有的位都作加,减运算.下列为两 个二进制数相加,第一个数最高位为1,对于不带符号 的数,代表249,如果是带符号数,则表示为-7:
10章 第10章 二进制算术运算
第10章 二进制算术运算 章
10.1 加法与减法指令(ADD与SUB) 加法与减法指令 与 10.2 无符号数与带符号数 10.3 乘法 10.4 除法 10.5 改变符号和符号扩展指令 10.6 寻址与加,减法运算练习 寻址与加,
10章 第10章 二进制算术运算
10.1 加法与减法指令 加法与减法指令(ADD与SUB) 与
AX,[DI] [BX],AX DEC DEC DEC SI SI DI ;寄存器与寄存器 ;存储器与寄存器
DEC DI DEC BX DEC BX
10章 第10章 二进制算术运算
LOOP E20 RET E10DWD
;寄存器与存储器
ENDP
CODE ENDS END BEGIN
10章 第10章 二进制算术运算
10章 第10章 二进制算术运算
ORG 100H BEGIN: JMP SHORT MAIN ; ————————————————————— BYTEA DB 64H ;数据定义
10章 第10章 二进制算术运算
BYTEB DB 40H BYTEC DB 16H WORDA DW 4000H WORDB DW 2000H WORDC DW 1000H ; ————————————————————— MAIN PROC NEAR CALL B10ADD CALL C10SUB ;调用加法子程序 ;调用减法子程序
10章 第10章 二进制算术运算
进位和溢出同时发生的情况如下: 无符号数 1111 0110 1000 1001 0111 1111 246 137 127 不正确 带符号数 -10 -119 +127 不正确 1 1 CF OF
10章 第10章 二进制算术运算
10.3 乘 法
对于乘法,MUL指令用于处理无符号数乘法, IMUL用来处理带符号数乘法.作为一个程序设计员, 你必须控制所处理的数据格式并选择适当的指令.两 个基本的乘法运算如下:
10章 第10章 二进制算术运算
; ————————————————————— WORD1A DW 0123H WORD1B DW 0BC62H WORD2A DW 0012H WORD2B DW 553AH WORD3A DW ? WORD3B DW ? ; ————————————————————— ;数据定义
10章 第10章 二进制算术运算
MAIN PROC NEAR CALL D10DWD CALL E10DWD RET MAIN ENDP ;调用加法子程序1 ;调用加法子程序2
10章 第10章 二进制算术运算
; ———————加法子程序1 D10DWD PROC MOV AX,WORD1B ADD AX,WORD2B MOV WORD3B,AX MOV AX,WORD1A ADC AX,WORD2A MOV WORD3A,AX RET
10章 第10章 二进制算术运算
2. 多字节加法 例10.2 多字节加法. 源程序清单如下: ; filename:L102.ASM 多字节加法 CODE SEGMENT PARA 'CODE' ASSUME CS:CODE ,DS:CODE,SS:CODE ORG 100H BEGIN: JMP SHORT MAIN
10章 第10章 二进制算术运算
立即数与存储器的加/减 立即数与寄存器的加/减 寄存器与寄存器的加/减 寄存器与存储器的加/减 存储器与寄存器的加/减
10章 第10章 二进制算术运算
例10.1 加法指令ADD与减法指令SUB的使用.其中, 子 程 序 B10ADD 使 用 ADD 指 令 来 处 理 字 节 的 相 加 , C10SUB使用SUB指令来处理字的相减. 源程序清单如下: ; filename:L101.ASM ; ————————————————————— CODE SEGMENT ASSUME CS:CODE ,DS:CODE,SS:CODE
10章 第10章 二进制算术运算
1. 字节乘字节 被乘数放在AL寄存器中,乘数放在寄存器或存储 器的一个字节单元中(OPR),将乘积放在AX寄存器中. 此运算会清除原存放在AH中的数据.如图10-1中的 OPR是指令中的操作数,若OPR是字节型数据,AL的 值与OPR相乘,16位的乘积放到AX中. OPR 16 AX
ADD与SUB指令是加法与减法指令,可进行二进 制数的字节或字的加,减运算.加法运算与手工加法 相似,按逢二进一求和.而对于减法运算,计算机是 利用对减数求补与被减数相加的方法来处理.方法是: 将第二个操作数(减数),每一位变反(0→1或1→0),然 后加1,这个过程称为求补;最后再与第一个操作数 (被减数)相加.对于操作数的寻址有下列五种可能:
10章 第10章 二进制算术运算
和为十六进制1119C,超过了AX寄存器的无符号 数最大容量,进位标志CF=1.下面将高字相加, ADC指令连同进位CF一起求和. WORD1A 0123 WORD2A 0012 CF 和 1 0136
10章 第10章 二进制算术运算
使用DEBUG追踪该算术运算,将会观察到AX中 存有0136,WORD3A存有3601,WORD3B存有9C11. 例10.2中,加法子程序2(E10DWD)可以作任意长 度的加法.从数据的最低位开始加起,第一次循环加 最低的字,第二次循环加次低的字,所以,SI,DI, BX BX的内容需要减2.可以用两条DEC减1指令,实现递 2 DEC 1 减的运算.请注意,指令 SUB 寄存器,02 将会影响标志位,清除进位标志CF,产生不正确 的结果.
10章 第10章 二进制算术运算
AL中将产生和的结果80H;同时设定溢出标志位 CF=1,符号标志位SF=1.80H的二进制为10000000, 表示为一个负数为-128.两个正数求和结果为负,这 是为什么?问题的原因就是AL寄存器的容量太小,需 要将和放在AX寄存器中.下列CBW指令可将字节转换 成字,将AL中的60H根据其正负号扩展AH成为0060H 存入AX中.这时ADD在AX中才能产生正确的结果: 0080H或+128. CBW ADD AX,20H ;将AL扩展到AH ;20H加入AX中
10章 第10章 二进制算术运算
10.2 无符号数与带符号数
某些数是无符号的,例如用户编号和日期.某些 数是带符号的数,例如用户应付的金额,温度的读数 可能包含正值或负值.又例如产品价格和付款值永远 都被认定为正值. 表10-1给出了与寄存器宽度相匹配的无符号和带符 号数据的最大值.
10章 第10章 二进制算术运算
10章 第10章 二进制算术运算
无符号数
带符号数
CF
OF -4 5 1 +5 +1 1 0
1111 1100 0000 0101 0000 0001
252
不正确
10章 第10章 二进制算术运算
当有符号数的和有进位给符号位却没有产生最高位 进位,或没有进位给符号位却有最高位的进位时,其 结果不正确即有溢出. 无符号数 0111 1001 0000 1011 1000 0100 121 11 132 不正确 带符号数 +121 +11 -124 0 1 CF OF
10章 第10章 二进制算术运算
因为使用循环,所以仅使用一次加法指令ADC. 开始的CLC指令将进位标志CF清为0.使用循环的方法 有如下要求:① 字的定义必须是连续的;② 由低地址 到高地址处理;③ CX的初值为相加的字数. 多字的减法是用带借位的减法指令SBB取代ADC, 就是将子程序2(E10DWD)中的ADC以SBB取代. 2(E10DWD) ADC SBB
10章 第10章 二进制算术运算
1. 溢出 一个字节所能表示的带符号二进制数的范围为128~+127,当运算的结果超出这个范围时就称为溢出. 通常的算术运算很容易超过一个字节寄存器的容量. 例如,当寄存器AL中的和超过其最大容量时,不会自 动地将溢出扩充到AH寄存器中.假设AL=60H,若 ADD AL,20H