怎么样做二进制数的除法运算 应该怎么做?

来源:互联网
责任编辑:李佳
 综合 
字体:

作者信息| 10 参考wikiHow是一个“多人协作写作系统”,因此我们的很多文章都是由多位作者共同创作的。 为了创作这篇文章,25位用户(部分匿名)多次对文章进行了编辑和改进。

本文引用了10条参考,详情参见页面底部。

在本文中:使用长除法使用补数法10 参考

二进制除法问题可以使用长除法来解,无论是自学这类问题的解法,还是写一个简单的计算机程序,长除法都非常实用。另外,多次相减补数法也可以用来解二进制除法问题,但你可能不太熟悉,它在编程中的使用频率也不如长除法。[1]机器语言通常使用估计算法来提高效率,但这不在本文的论述范围以内。[2]

1使用长除法

以Divide Binary Numbers Step 1为标题的图片

1回顾十进制的长除法。十进制是以10为基数的数制,我们日常使用的数字都是十进制数字。如果你已经很久没有做过长除法,不妨利用算题172 ÷ 4来复习一下。如果你对这部分的内容十分熟悉,请直接跳到下一步,学习二进制的长除法。

被除数除以除数,所得结果为

比较除数和被除数的首位数。如果除数比较大,就继续将下一位数加到被除数中,直至被除数大于除数。例如,用172 ÷ 4时,我们会比较4和1,发现4 > 1后,就比较4和17。

在比较的被除数的最后一位上写下商的首位数。比较4和17,我们发现17整除4得4,因此,我们将商的首位数4写到7的上面。

相乘和相减后得到余数。用商的位值乘以除数,本题中即4 x 4 = 16。在17下面写16,然后用17 - 16,得到余数1。

重复。再次将除数4与余数1比较,发现4 > 1,“结合”被除数的下一位数,然后比较4和12。12是4的三倍,而且没有余数,所以将3写作商的下一位数。答案是43。

以Divide Binary Numbers Step 2为标题的图片

2列出二进制的长除法问题。以10101 ÷ 11为例。将问题写成长除法形式,以10101为被除数,11为除数。在上面留出空处写商,下面写下计算过程。

以Divide Binary Numbers Step 3为标题的图片

3比较除数和被除数的首位数。二进制长除法的解题方法与十进制长除法一样,但实际上前者要简单得多。整除被除数时,每一位的结果要么等于0,要么等于1:

11 > 1,所以1“无法”整除11。在商的第一位,也就是被除数首位数字的上方,写一个0。

以Divide Binary Numbers Step 4为标题的图片

4继续加入下一位数,直到结果为1。以下是例题后面的计算步骤:

结合被除数的下一位数。11 > 10。在商的位置再写一个0。

结合下一位数。11 < 101。在商的位置再写一个1。

以Divide Binary Numbers Step 5为标题的图片

5计算余数。和十进制的长除法一样,我们用刚刚算出的1乘以除数11,然后将结果与刚才计算中被除的几位数对齐,写到被除数下面。在二进制中,由于1乘以除数总是等于除数,我们可以将之简化:

在被除数下面写下除数。这里,我们将11与被除数的前三位数101对齐,写到它的下面。

计算101 - 11,得到余数10。如果需要复习二进制数的减法运算,可以参阅本网站的相关文章。

以Divide Binary Numbers Step 6为标题的图片

6重复这一步骤,直至问题解决。将被除数的下一位数与余数结合,得到100。由于11 < 100,所以在商的下一位数写1。使用之前的方法,继续计算:

在100下面写11,相减得到1。

结合被除数的最后一位数,得到11。

11 = 11,所以商或答案的最后一位数写1。

没有余数,因此问题得到解决。答案是00111,或者简化成111。

以Divide Binary Numbers Step 7为标题的图片

7如有必要,添加小数点。有时,结果不是整数。如果使用最后一位数后仍有余数,就在被除数后面加”.0”,在商里面加”.”,这样,你可以再次结合下一位数,并继续计算。重复这一步骤,直至答案足够精确,然后四舍五入。在纸上计算时,你可以去掉最后一位数的0,取整,如果最后一位数是1,就去掉这个1,然后在新的最后一位数字上加1。在编程中,请遵循某种四舍五入的标准算法,以避免在二进制数和十进制数之间转换时出错。[3]

二进制除法的结果通常包含循环小数,这种情况比十进制数制多。[4]

由于“小数点”(decimal point)只用于十进制,所以在任何其他数制中,我们会使用更通用的术语“小数点”(radix point)。[5]

2使用补数法

以Divide Binary Numbers Step 8为标题的图片

1理解基本概念。在任何数制中,解除法问题时,我们都可以用被除数减去除数,然后用余数减去除数,同时计算在得到负数之前相减的次数。我们以十进制的除法问题26 ÷ 7为例:

26 - 7 = 19 (减1次)

19 - 7 = 12 (2)

12 - 7 = 5 (3)

5 - 7 = -2。得到负数,所以回到上一步。答案是3,余数为5。注意,这种方法无法计算答案的非整数部分。

以Divide Binary Numbers Step 9为标题的图片

2学习用补数法做减法。虽然你可以很方便地在二进制中使用上述方法,但做减法时,我们可以使用效率更高的方法,从而省下编程计算机来计算二进制数字除法的时间。这种方法就是二进制的补数减法。我们举一个简单的例子,计算111 - 011,计算前请确保两个数字的长度相同:

将第二项的每一位数字减1,计算一补数。在二进制中,我们可以把1变成0,把0变成1,非常方便地完成这一步。[6][7]本例题中,011变成了100。

用结果加一:100 + 1 = 101。它被称为二补数,让我们像做加法一样去解减法问题。[8]从本质上讲,这种方法是加一个负数,而不是减一个正数。

将结果与第一项相加。写下问题的解:111 + 101 = 1100。

去掉进位数。去掉答案的第一位数,得到最终结果。1100 → 100

以Divide Binary Numbers Step 10为标题的图片

3结合以上两个概念。现在你知道了解除法问题的减法方法,以及解减法问题的二补数方法。使用以下步骤,你可以将它们结合成一种方法,来解除法问题。[9]如果愿意,在继续浏览前你可以试着自己思考一下。

以Divide Binary Numbers Step 11为标题的图片

4通过加二补数,用被除数减去除数。以100011 ÷ 000101为例。第一步是计算100011 - 000101,我们可以使用二补数方法,将它变成一个加法问题:

000101的二补数 = 111010 + 1 = 111011

100011 + 111011 = 1011110

去掉进位数 → 011110

以Divide Binary Numbers Step 12为标题的图片

5为商加一。在计算机程序中,这时会为商加一。纸上计算时,在某个角落做个记号,避免与其他计算工作混淆。我们已经成功地减了一次,所以目前为止,商是1

以Divide Binary Numbers Step 13为标题的图片

6继续用余数减去除数。上次计算的结果是“减去”一次除数后剩下的余数。每次继续加上除数的二补数并去掉进位数。每减一次,为商加一,直至余数小于等于除数。[10]

011110 + 111011 = 1011001 → 011001 (商 1+1=10)

011001 + 111011 = 1010100 → 010100 (商 10+1=11)

010100 + 111011 = 1001111 → 001111 (11+1=100)

001111 + 111011 = 1001010 → 001010 (100+1=101)

001010 + 111011 = 10000101 → 0000101 (101+1=110)

0000101 + 111011 = 1000000 → 000000 (110+1=111)

0小于101,所以我们就此打住。商 111是这道除法题的答案。余数是减法最后所得的结果,在本题中,等于0,即没有余数。

小提示

除了确定答案的正、负以外,其他时间可以忽略掉计算前二进制数前面的符号位。

如果数字的位数不同,则不能使用减法的二补数法。在较小的数字前面加0即可。

在对机器指令集应用任何二进制算术前,必须考虑增量、减量或弹出堆栈的指令。

参考

↑ http://www.eetimes.com/author.asp?section_id=14&doc_id=1282912↑ http://electronics.stackexchange.com/questions/22410/how-does-division-occur-in-our-computers↑ http://www.cs.rit.edu/~mtf/student-resources/20131_tilleti_mscourse.pdf↑ http://www.exploringbinary.com/binary-division/↑ http://mathforum.org/library/drmath/view/56091.html↑ http://academic.evergreen.edu/projects/biophysics/technotes/program/2s_comp.htm↑ http://courses.cs.vt.edu/~csonline/NumberSystems/Lessons/OnesComplement/index.html↑ http://www.cs.cornell.edu/~tomf/notes/cps104/twoscomp.html↑ http://academic.evergreen.edu/projects/biophysics/technotes/program/2s_comp.htm↑ http://academic.evergreen.edu/projects/biophysics/technotes/program/2s_comp.htm显示 更多... (1)

相关wikiHows

求正多边形的面积

如何

求正多边形的面积

计算等腰三角形的面积

如何

计算等腰三角形的面积

计算置信区间(Confidence Interval)

如何

计算置信区间(Confidence Interval)

将分钟换算成小时

如何

将分钟换算成小时

求四边形的面积

如何

求四边形的面积

求直角三角形斜边的长度

如何

求直角三角形斜边的长度

计算期望值

如何

计算期望值

将秒转换成分钟

如何

将秒转换成分钟

计算分数的平方

如何

计算分数的平方

计算成本节约率

如何

计算成本节约率

求弧长

如何

求弧长

计算盒子的体积

如何

计算盒子的体积

做分数乘法

如何

做分数乘法

求等差数列的任意项

如何

求等差数列的任意项

根据您访问的内容,您可能还对以下内容感兴趣,希望对您有帮助:

如何计算二进制的除法运算(可将解法发图片)?

答:二进制的除法和十进制是一样的。下图给了一个图片示例: 拓展资料 二级制算法 加法法则: 0+0=0,0+1=1,1+0=1,1+1=10 减法,当需要向上一位借数时,必须把上一位的1看成下一位的(2)10。 二进制算法减法法则: 0-0 =0,1-0=1,1-1=0,0-1=1 ...

用二进制除法怎么算“10111010÷110”?

答:用二进制除法算“10111010÷110”: 过程如下: 结果:10111010÷110=11111 二进制数除法运算按下列三条法则: 1、0÷0=0 2、0÷1=0(1÷0是无意义的) 3、1÷1=1 扩展资料: 二进制的四则运算 加法 有四种情况: 0+0=0 0+1=1 1+0=1 1+1=10 0 进位为1 【...

二进制数的除法运算怎么算

答:《看不透》:真阿绣,假阿绣,痴情郎儿看不透;多情郎,好糊涂,落得笑骂留千秋。

计算机是怎样利用二进制做除法的

答:在电脑中二进制除法不是用加法来实现的。二进制除法法则和十进制除法法则是相同的,步骤如下: 第一步:从被除数的最高位除起,除的时候先看被除数的前一位或几位,如果前一位或几位比除数小,就要多看一位。 第二步:除到被除数的哪一位,就把...

二进制除法的计算方法!

答:二进制数除法运算按下列三条法则:1、0÷0=0 2、0÷1=0(1÷0是无意义的) 3、1÷1=1 例: (111011)2 ÷ (1011)2算式如下:(因为在网页里不方便写成除法运算的形式,所以写成下面这样。) 1 1 1 0 1 1 ÷ 1 0 1 1 商1 ---------------------- 1 1 1 最...

二进制除法怎么算???急啊!!!

答:在十进制中,从十位借一位到个位,用在个位减的时候,就是10+个位上的数,二进制,从十位借一位到个位,用在个位减的时候,就是2+个位上的数。 定点数(整数),那就舍掉了。是浮点数,则继续加位运算,直到精度达到后舍掉。 比如说:101-11,个...

二进制数除法怎么算

答:二进制除法可以转换成移位操作.如果除数是2的n次方.那么除法就相当于把这个数想右移动n位.同理.一个数乘以2的次方就相当于像左移动n位,不知道你明白没有

二进制除法

答:二进制数除法运算按下列三条法则:1、0÷0=0 2、0÷1=0(1÷0是无意义的) 3、1÷1=1 例: (111011)2 ÷ (1011)2算式如下:(因为在网页里不方便写成除法运算的形式,所以写成下面这样。) 1 1 1 0 1 1 ÷ 1 0 1 1 商1 ---------------------- 1 1 1 最...

二进制数之间的乘法和除法怎么计算

答:2进制更多的是提供逻辑运算与或非计算,乘法类似于与逻辑运算,除法没有。非要计算可以转化为10进制计算

二进制加法器如何进行乘除法运算

答:在电脑中二进制除法不是用加法来实现的。二进制除法法则和十进制除法法则是相同的,步骤如下: 第一步:从被除数的最高位除起,除的时候先看被除数的前一位或几位,如果前一位或几位比除数小,就要多看一位。 第二步:除到被除数的哪一位,就把...


www.book1234.com true http://www.book1234.com/10/4336/109113.html report 41241 怎么样做二进制数的除法运算应该怎么做?,作者信息|10参考wikiHow是一个“多人协作写作系统”,因此我们的很多文章都是由多位作者共同创作的。为了创作这篇文章,25位用户(部分匿名)多次对文章进行了编辑和改进。本文引用了10条参考,详情参见页面底部。在本文中:使用长除法使用补数法10参考...
娱乐时尚
科技资讯
历史文化
真视界
旅游美食
精彩图文
我爱我车
母婴健康
关于本站 | 广告服务 | 手机版 | 商务合作 | 免责申明 | 招聘信息 | 联系我们
Copyright © 2004-2018 book1234.com All Rights Reserved. 布客网 版权所有
京ICP备10044368号-1 京公网安备11010802011102号
教育考试: 学历财经建筑 医药公考资格外语电脑作文招聘中小学留学 文档 移民 文库专栏23问答中心z资讯z资讯1资讯涨资讯涨资讯1资讯问答图书馆知识IT编程数码信息解决方案信息中心IT科技问答新闻中心软件教室设计大全网络相关英语学习开发编程考试中心参考范文管理文库营销中心站长之家IT信息中心商学院数码大全硬件DIY企业服务网吧在线百科硬件知识手机平板汽车游戏家电精彩摄影现代家居IT女人经验健康养生猎奇创业攻略教育学习历史时尚潮流最近更新涨知识