第3讲 二进制乘法
- 格式:ppt
- 大小:829.50 KB
- 文档页数:36
二进制数的运算方法
二进制数的算术运算包括四则运算:加、减、乘、除,下面分别介绍。
二进制数的加法
根据“逢二进一”规则,二进制数加法的法则为:
0+0=0
0+1=1+0=1
1+1=0 (进位为1)
1+1+1=1 (进位为1)
例如:1110和1011相加过程如下:
二进制数的减法
根据“借一有二”的规则,二进制数减法的法则为:
0-0=0
1-1=0
1-0=1
0-1=1 (借位为1)
例如:1101减去1011的过程如下:
二进制数的乘法
二进制数乘法的过程可以模仿十进制数乘法。
然而,二进制乘法更简单,因为只有两个可能的乘法数字:0或1。
二进制数乘法的规则是:
0×0=0
0×1=1×0=0
1×1=1
例如:1001和1010相乘的过程如下:
从低位到高位,将被乘数乘以乘数的每一位。
如果乘数的一位是1,那么这个子部分的乘积就是被乘数。
如果乘数的一位为0,则部分积为0。
部分积的最低位必须与标准乘数对齐,所有部分积相加的结果就是乘法的乘积。
二进制数的除法
二进制数除法和十进制数除法非常相似。
被除数(或中间余数)可以从被除数的最高位开始与除数进行比较。
如果被除数(或中间余数)大于除数,被除数(或中间余数)减去除数,商为
1,得到减法后的中间余数,否则商为0。
然后将被除数的下
一个位移加到中间余数的最后一个位置,重复上述过程即可得到所需的商和最终余数。
例如:100110÷110的过程如下:。
在进行第一步操作时,为附加位。
★在进行第一步操作时,Yn+1为附加位。
当乘数尾数的位数为奇数时,乘数用1位符号位,★当乘数尾数的位数为奇数时,乘数用1位符号位,最后一步只移1 最后一步只移1位。
当乘数尾数的位数为偶数时,有两种处理方法:★当乘数尾数的位数为偶数时,有两种处理方法:● 乘数用1位符号位,在尾数末尾、乘数用1位符号位,在尾数末尾、附加位之前再加一个0 最后一步只移1 共移位(n+1/2 (n+1/2次一个0,最后一步只移1位。
共移位(n+1/2次。
乘数用2位符号位,最后一步不移位。
共移位n/2次乘数用2位符号位,最后一步不移位。
共移位n/2次。
n/2 21/23 21 ●例:X=0.1110,Y=-0.1101,用补码两位乘计算X·Y。
0.1110,=-0.1101,用补码两位乘计算X Y 0.1101 =000.1110, =111.0010,解:[X]补=000.1110, [-X]补=111.0010, =001.1100,2[=110.0100, [2X]补=001.1100,2[-X]补=110.0100, [Y]补=11.0011 步数①②③ Yn-1YnYn+1 110 001 110 部分积A 部分积A 000.0000 +[-X]补 111.0010 111.0010 右移2 右移2位→ 111.1100 +[X]补000.1110 1000.1010 右移2 右移2位→ 000.0010 +[-X]补 111.0010 111.0100 操作乘数Y 附加位Y 乘数Y 附加位Yn+1 11.0011 11.0011 0 1011.00 1011.00 11. 101011. 101011. 1 0 ∴ [X·Y]补=1.01001010 22/23 =-0.10110110 X·Y=-0.10110110 22 注意:区分附加位和欠账触发器。
二进制加减乘除最重要的,理解十进制的借位和进位.十进制中,由于一个循环是10,所以借1位,就相当于从高位借过来10,也就是常说的借1当10,同时,高位需要减去10(外在体现上是减去1,因为高位已经在高位了).反过来,进1,就等于高位加上10,但因为高位已经在高位了,所以去掉位数考虑,高位实际是加1,也就是常说的进1.对于二进制来说,是一样的,只不过一个循环是2,所以借1位,就相当于从高位借过来2,也就是常说的借1当2,同时,高位需要减去2(外在体现上是减去1,因为高位已经在高位了).反过来,进1,就等于高位加上2,但因为高位已经在高位了,所以去掉位数考虑,高位实际是加1,也就是常说的逢2进1,这一点与十进制是一样的.乘法实际就是加法,就是乘数"每个位"个被乘数得到的乘积相加.乘法也有运算法则,与十进制一样,带0的一律等于0,也就是说只有1*1=1,其余都为0.除法实际就是减法,就是被除数减去除数的某个倍的乘积,然后得余数的过程.而用于二进制中商(也就是倍)只能为0或为1,所以,乘积要么是除数本身,要么是0,这么一来,实际就变成了减去除数本身或0了,也就是二进制减法了.这就是为什么计算机科学上讲,乘法就是加法,除法就是减法的原因.以下转自网络2.3 二进制数的运算二进制数的运算除了有四则运算外,还可以有逻辑运算。
下面分别予以介绍。
2.3.1 二进制数的四则运算二进制数与十进制数一样,同样可以进行加、减、乘、除四则运算。
其算法规则如下:加运算:0+0=0,0+1=1,1+0=1,1+1=10,#逢2进1;减运算:1-1=0,1-0=1,0-0=0,0-1=1,#向高位借1当2;乘运算:0×0=0,0×1=0,1×0=0,1×1=1,#只有同时为“1”时结果才为“1”;除运算:二进制数只有两个数(0,1),因此它的商是1或0。
1.加、减法运算示例例如:求(1101)2+(1010)2之和;求(110000)2–(10111)2之差,这两个计算过程分别如图2-12的(a)/(b)所示。
一、二进制规则运算二进制规则运算是在二进制数系统中进行的基本数学运算,包括加法、减法、乘法和除法。
1.二进制加法:二进制加法与十进制加法类似,只是在进位的时候是在2的基础上进位,逢2进1。
例:对于二进制数1101和1011相加,从右往左逐位相加,遇到进位则向高位进位,逢2进1。
结果是二进制数11000。
2.二进制减法:二进制减法也类似于十进制减法,只是在不够减的时候要向高位借位。
例如,对于二进制数1101减去1011,从右往左逐位相减,不够减时向高位借位。
结果是二进制数10。
3.二进制乘法:二进制乘法使用了乘法的基本规则,将每一位相乘得到部分积,然后将所有部分积相加得到最终结果。
例如,二进制数1101乘以1011,先将1101和1011中的每一位相乘,然后将得到的部分积相加得到结果。
4.二进制除法:二进制除法也使用了除法的基本规则,将被除数不断减去除数,直到余数小于除数为止。
商是被除数减去除数的次数,余数是最后剩下的部分。
二、二进制和十进制换算二进制转换为十进制和十进制转换为二进制的方法:1.二进制转十进制:从二进制数的最右边开始,每一位都表示一个2的幂。
对于每一位,如果该位是1,则将对应的2的幂相加;如果是0,则不加。
举例:二进制数1011转换为十进制,计算方法是:1*2^3+0*2^2+1*2^1+1*2^0=8+0+2+1=11。
2.十进制转二进制:用除以2的方法,将十进制数不断除以2,每次取余数作为二进制数的一位。
将每一次的余数按逆序排列,就是该十进制数的二进制表示。
举例:十进制数13转换为二进制,计算方法是:13÷2=6余1,6÷2=3余0,3÷2=1余1,1÷2=0余1。
逆序排列得到二进制数1101。
二进制补码乘法除法二进制补码乘法除法1)二进制乘法 (1) Binary Multiplication)Binary numbers can be multiplied using two methods,二进制数可以使用两种方法相乘,1.Paper method: Paper method is similar tomultiplication of decimal numbers on paper.纸法:纸法类似于十进制数在纸上相乘。
puter method: Computer method is used bydigital machines to multiply the binary numbers.计算机方法:数字计算机使用计算机方法乘以二进制数。
However, both these methods follow the same rule of multiplication which is,但是,这两种方法都遵循相同的乘法规则,即0 * 0 = 00 * 1 = 01 * 0 = 01 * 1 = 1Note: If two binary numbers are of 'n' bits each in magnitude, then their product can be maximum '2n' bits long in magnitude.注意:如果两个二进制数的大小均为'n'位,则它们的乘积最大为'2n'位。
长手乘法/纸张方法 (Long Hand Multiplication/Paper Method)The long Hand Multiplication technique is similar to decimal multiplication that we do on paper.长手乘法技术类似于我们在纸上做的十进制乘法。
二进制乘、除法由加法和移位实现二进制乘、除法由加法和移位实现一、1101x1011被乘数1101 乘数1011原理:由左向右逐位判断乘数的值,如果值为1,则被乘数加到积单元,之后积单元左移一位;如果值为0,积单元左移一位;……直到乘数判断完为止。
积单元初值乘数第一位为1积单元加 1101部分积为左移一位部分积为乘数第二位为0左移一位部分积为乘数第三位为1积单元加 1101部分积为左移一位乘数第四位为1积单元加 1101部分积为此时乘数判断完毕,不再移位。
积为10001111。
二、1000001÷101被除数1000001 除数101原理:设被除数为A 、除数为B 、商为Q (初值为0)、余数为R (初值为0)。
设置一个Q 单元和R 单元,A 由高位至低位依次左移进入R 单元。
每次移位进入后比较R 单元和B 的值,如果R ≥B ,则将这一位的商单元的值置1,然后从R 中减去B (做补码加法运算),否则不做操作。
商单元与移位同步进行。
……直到A 全部进入R 单元为止。
此时Q 中存放商、R 中存放余数。
A=1000001,B=101,B 的补码1011R 初值Q 初值A=1000001左移入R ,A=000001 R=B=101R<b< p="">Q=A=000001左移入R,A=00001 R=B=101R<b< p="">Q=A=00001左移入R,A=0001 R=B=101R<b< p="">Q=A=0001左移入R ,A=001R=B=101 R ≥B ,则R-B=R+(-B )1000+1011=0011R=Q=A=001左移入R ,A=01 R=B=101R ≥B ,则R-B=R+(-B )0110+1011=0001 R=Q=A=01左移入R ,A=1 R=B=101R<b< p="">Q=A=1左移入R R=B=101R ≥B ,则R-B=R+(-B )0101+1011=0000 R=Q=</b<></b<></b<></b<>。
二进制加减乘除法运算法则二进制加减乘除法运算,这听起来是不是有点高深?其实呢,它就像咱们平时做的加减乘除一样,只不过用的是另一种语言,听起来神秘又酷炫。
想象一下,咱们的计算机就像一个聪明的小伙伴,里面的数都是用0和1在玩耍。
没错,二进制就是这两个数字的世界,简单又直接。
咱们先来聊聊二进制加法。
二进制加法和咱们平常的加法差不多,就是简单的把数加起来。
不过啊,要注意一件事,二进制只有0和1。
当你加两个1的时候,会发生什么?没错,变成了10!就像你存了两块巧克力,结果发现口袋里放不下了,只能换成一块新巧克力和一块空的袋子。
这就叫进位,听起来是不是很有趣?所以,二进制加法其实就像是和朋友分享零食,分享多了就得换个方式了。
接下来咱们说说减法。
二进制减法有点像拆东西,得小心点。
要是你从一个1里减去1,那就没问题,结果是0。
但是,如果你从0里减去1,那就有点麻烦了,得借位。
想象一下,你口袋里只有一块糖,想给朋友,但你又没有了,那怎么办呢?没错,得向别的朋友借一块,这样才能给出你想给的。
二进制减法就像这样的借位,可能稍微复杂些,但只要理解了,就能轻松应对。
说到乘法,二进制乘法更是让人兴奋。
它其实就是多次加法的变种。
比如,1乘以1永远是1,1乘以0就是0,哈哈,听起来没啥技术含量,但二进制的乘法需要认真对待。
当你乘以1的时候,结果不会改变;可是如果是0,那就真是“一切都没了”。
这就好比你请朋友吃饭,结果他居然只点了水,哈哈,虽然水好,但还是没什么特别的感觉。
那么除法呢?二进制除法有点像分蛋糕。
你手上有个蛋糕,想分给朋友,但朋友的数量决定了每个人能分到多少。
如果蛋糕够用,那自然是皆大欢喜;但要是蛋糕不够,分给大家就得斤斤计较了。
二进制除法也一样,当你用一个数去除另一个数,结果会是0或1,但要是被除数比除数小,那结果就是0,嘿嘿,这就像朋友们都没有蛋糕可分一样。
这些规则在计算机里无处不在,像个隐形的小助手,帮咱们完成各种各样的任务。
二进制的运算法则二进制是一种使用两个数字0和1来表示数值的数制系统。
在计算机科学和电子工程领域,二进制被广泛应用于数值计算、数据存储和通信传输等方面。
二进制的运算法则包括加法、减法、乘法和除法等。
1.二进制加法:二进制加法的运算规则与十进制加法类似,只是进位的计算变为2进制。
具体规则如下:-当两个二进制位相加得到的结果为0时,结果的当前位为0,不产生进位。
-当两个二进制位相加得到的结果为1时,结果的当前位为1,不产生进位。
-当两个二进制位相加得到的结果为2时,结果的当前位为0,产生进位。
-当两个二进制位相加得到的结果为3时,结果的当前位为1,产生进位。
2.二进制减法:二进制减法的运算规则与十进制减法类似,只是借位的计算变为2进制。
具体规则如下:-当被减数位大于减数位时,直接减法。
-当被减数位小于减数位时,向高位借位。
高位的1减去低位的1,结果为0,再向高位继续借位。
-当借位到最高位仍然需要向高位借位时,说明减数大于被减数,此时不能进行二进制减法。
-对于加减法,运算中的进、借位最好进行检查,防止发生错误。
3.二进制乘法:二进制乘法的运算规则与十进制乘法类似,只是计算进位的规则变为2进制。
具体规则如下:-0乘以任何数都等于0。
-1乘以任何数都等于原数。
-两个二进制数相乘时,将乘数逐位与被乘数相乘,结果再相加得到最后的结果。
4.二进制除法:二进制除法的运算规则与十进制除法类似,只是计算商和余数的规则变为2进制。
具体规则如下:-除数不能为0。
-当被除数小于除数时,商的当前位为0。
-当被除数大于或等于除数时,商的当前位为1,余数为被除数减去除数后的差。
-重复上述步骤,直到余数为0或达到指定的精度要求。
除了基本的运算法则,二进制还有一些其他的运算法则,如位运算和逻辑运算等。
位运算是对二进制数的每一位进行操作,如与(AND)、或(OR)、非(NOT)和异或(XOR)等运算。
逻辑运算是根据逻辑关系进行操作,如与(AND)、或(OR)和非(NOT)等运算。
第三讲二进制数的四则运算-----月----日姓名---------教学重点:二进制数计算法则教学难点:除法的计算知识要点二进制数计算法则:逢2进1,借1当2.1.加法法则:0+0=0 0+1=1 1+0=1 1+1=10 2.乘法法则:0×0=0 0×1=0 1×0=0 1×1=1典型例题例1 计算。
(1)1011(2)+11(2)(2)101(2)+110(2)(3)1011(2)-11(2)(2)1101(2)-101(2)例2 计算。
(1)1101(2)×11(2)(2)1001(2)×10(2)例3 计算。
(1)1111(2)÷101(2) (2)10010(2)÷11(2)随堂练习1.计算。
(1)101(2)+10(2) (2)1110(2)+11(2)(3)1011(2)+1000(2)(4)101(2)-10(2)(5)1110(2)-11(2) (6)1001(2)-1000(2)2.计算。
(1)110(2)×10(2)(2)1011(2)×11(2)(3)1001(2)×11(2)(4)101(2)×11(2)(5)11011(2)×11(2)(6)11001(2)×11(2)3.计算。
(1)11100(2)÷100(2)(2)1111(2)÷11(2)(3)10101(2)÷11(2) (4)1100(2)÷11(2)(5)11011(2)÷11(2) (6)1000001(2)÷101(2)课后练习1.计算。
(1)1101(2)+111(2) (2)101(2)-11(2)(3)11(2)×110(2)(4)1001(2)÷11(2)拓展练习计算(1)81(2)+110(2)-110(2)(2)101101(2)×11011(2)-100100(2)(3)110(2)×1010(2)-7(10)(4)100010(2)×1101(2)-10001(2)小课堂口袋钱马戏团里有一个小丑,他身上有十个口袋。
带小数点的二进制乘法在今天的数字世界里,二进制就像是一把神奇的钥匙,打开了无数科技的大门。
你知道吗,二进制不仅在计算机里占据一席之地,甚至还在我们日常生活中悄悄潜伏。
听起来可能有点吓人,别担心,我会带你轻松地了解这个话题。
今天,我们要聊聊带小数点的二进制乘法。
别担心,这不是高深的数学课,而是一次有趣的探索旅程。
想象一下你在超市买东西。
你看到一瓶饮料,上面标着2.5元。
这里的“2.5”可不只是个简单的数字,它背后其实有个小故事。
把这个小数转成二进制,就像把一杯水倒进另一个杯子,水的形状变了,但本质没变。
小数的二进制表示法里,整数部分和小数部分各自“上路”。
比如2的二进制是10,而0.5的二进制是0.1。
听上去是不是有点神奇?这就是二进制乘法的乐趣所在。
现在,假设你要把这瓶饮料的价格乘以3。
我们先把2.5转成二进制,得到了10.1。
然后我们得找个方法来让这个二进制乘法顺利进行。
别担心,这就像是烹饪,你需要准备好食材,然后根据食谱一步步来。
二进制乘法的规则其实很简单,就像你在朋友面前做个小把戏,轻松搞定。
我们先把10.1乘以3。
3的二进制是11。
把这个“11”放在旁边,就像比赛的时候的裁判,准备记录下结果。
我们先乘以整数部分,再乘以小数部分。
乘以整数部分10就是30,结果是11110。
乘以小数部分0.1,得到了1.1。
把这两个结果合并,最终的结果就是11111.1,嘿,简直就是一个二进制的超级英雄,飞起来了!计算机里可不是这样简单。
它们有自己的一套规则,可能会复杂得让人头痛。
不过,想象一下,如果计算机可以像我们一样幽默,它们一定会大笑着说:“哎呀,乘法这件事,真是让人开心!”不管怎样,了解这个过程的关键在于,搞清楚每个数字在变换时如何保持原有的价值。
在这个过程中,带小数的二进制乘法其实就像我们生活中的很多事情。
我们每个人都是一个独特的小数点,偶尔需要和其他人相乘,创造出更大的价值。
想想看,你的朋友、家人、爱好,都是让你的生活变得丰富多彩的小数部分。
《程序员数学:位运算》——如何使用二进制计算乘法?作者:小傅哥博客:•一、前言•二、位操作介绍•三、位运算案例▪ 1. 获取位值▪ 2. 设置位值▪ 3. 清空位值▪ 4. 更新位值▪ 5. 偶数判断▪ 6. 正数判断▪7. 左移乘二▪8. 右移除二▪9. 正负交换▪10. 乘法运算(有符号)▪11. 乘法运算(无符号)▪12. 一的数量▪13. 转换计算▪14. 有效位数▪15. 幂值判断▪16. 加法运算(Ripple-carry adder)•四、常见面试题一、前言你是什么时候注意到位运算?从毕业入职公司看大佬的代码出现2 << 4开始?从小白晋升高开读框架的源码看到MAXIMUM_CAPACITY = 1 << 30;开始?还是从什么时候开始?其实二进制的位运算一直在我们那身边,从你开始编写Hello Word 打印输出时就有二进制流的处理,只不过隐藏的很深不好发现。
所以在我们开始意识到代码和二进制的关系往往都是来自于看到可以用二进制完成的计算,包括;二进制计算效率高于乘机,也包括二进制可以更好的体现出你要设置值的大小范围。
比如你要设定一个指定范围大小的Int 值= 1073741824,那么是给这样一个整数值看起来直观,还是二进制1<< 30 更直观呢?其实他们两个值是相等的。
所以这样的情况下也会有二进制运算的体现。
而小傅哥在学习编程阶段,第一次注意到二进制的运算是关于a、b两个值的互换,如果不引入第三个值就可以完成?int a = 2, b = 3;a = a ^ b;b = a ^ b;a = a ^ b;一个 ^ 帽子一样的运算符,就把两个数给替换,替换后 a = 3,b = 2 那它是怎么办到的呢?^ 异或运算:两个操作数的同位中,如果值相同(都是0 或者都是 1)则为 0,不同(一个是 0,一个是 1)则为 1•以二进制数据为基础进行运算解析▪ a = 2 二进制数为 0010、b = 3 二进制数为 0011▪ a = a ^ b = 0010 ^ 0011 = 0001▪ b = a ^ b = 0001 ^ 0011 = 0010 = 2▪ a = a ^ b = 0001 ^ 0010 = 0011 = 3•异或运算的基本定理解析▪ a = a ^ b▪ b = a ^ b = a ^ b ^ b = a = 2▪ a = a ^ b = a ^ a ^ b = b = 3而二进制的运算魅力还远不至于此,还可以完成奇偶判断、有效位计算、乘法、加法等。