如何除以二进制数(divide binary numbers)

使用长除法可以解决二进制除法问题,这是一种自学或编写简单计算机程序的有用方法。或者,重复减法的补码方法提供了一种您可能不熟悉的方法,尽管它在编程中并不常用。机器语言通常使用估计算法来提高效率,但这里不描述这些算法。...

方法1方法1/2:使用长除法

  1. 1查看十进制长除法。如果您已经有一段时间没有用普通十进制(以十为基数)数字进行长除法了,请使用问题172÷4复习基础知识。否则,请跳到下一步以二进制形式学习相同的过程。股息除以除数,答案是商。将除数与被除数中的第一个数字进行比较。如果除数是较大的数字,则继续向被除数添加数字,直到除数是较小的数字。(例如,如果计算172÷4,我们将比较4和1,注意4>1,并将4与17进行比较。)在比较中使用的最后一个股息数字上方写下商的第一个数字。比较4和17,我们看到4四次变成17,所以我们写4作为商的第一个数字,在7之上。乘法和减法求余数。将商数字与除数相乘,在本例中为4 x 4=16。将16写在17的下面,然后减去17-16得到余数1。重复再次将除数4与下一个数字1进行比较,注意4>1,并“调低”股息的下一个数字,以将4与12进行比较。4在没有余数的情况下三次变成12,所以我们写3作为商的下一个数字。答案是43。
  2. Image titled Divide Binary Numbers Step 1
  3. 2设置二进制长除法问题。让我们使用示例10101÷11。把它写成一个长除法问题,10101作为除数,11作为除数。在上面留下空格写下商,在下面写下你的计算。
  4. Image titled Divide Binary Numbers Step 2
  5. 3将除数与被除数的第一个数字进行比较。这就像一个十进制长除法问题,但实际上在二进制中要容易得多。您不能将数字除以除数(0),或者除数可以一次除以(1):11>1,所以11不能“进入”1。写一个0作为商的第一个数字(在被除数的第一个数字之上)。
  6. Image titled Divide Binary Numbers Step 3
  7. 4重复下一个数字,直到得到1。下面是我们示例的以下几个步骤:降低股息的下一个数字。11>在商中写一个0。将下一个数字调低。11<在商中写一个1。
  8. Image titled Divide Binary Numbers Step 4
  9. 5找到其余部分。与十进制长除法一样,我们将刚刚找到的数字(1)乘以除数(11),然后将结果写在与刚计算的数字对齐的被除数下面。在二进制中,我们可以简化这个操作,因为1 x除数总是等于除数:将除数写在被除数下面。这里,我们把11写在被除数的前三位(101)下面对齐。计算101-11得到余数10。如果需要复习,请参阅如何减去二进制数。
  10. Image titled Divide Binary Numbers Step 5
  11. 6重复操作,直到问题解决为止。将除数的下一个数字降到余数,得到100。自11日起<100,写一个1作为商的下一个数字。继续前面的问题:在100下面写11,然后减去得到1。把股息的最后一位降下来,使11.11=11,所以写一个1作为商的最后一位(答案)。没有余数,因此问题已完成。答案是00111,或者简单地说是111。
  12. Image titled Divide Binary Numbers Step 6
  13. 7如有必要,添加基点。有时,结果不是整数。如果在使用最后一个数字后仍有余数,请在被除数中添加“.0”和“.”到你的商,这样你就可以降下另一个数字并继续。重复上述步骤,直到达到所需的特异性,然后对答案进行四舍五入。在纸上,你可以把最后一个0砍掉,或者如果最后一个数字是1,把它去掉,在新的最后一个数字上加上1。在编程中,请遵循标准的四舍五入算法之一,以避免在二进制数和十进制数之间转换时出错。二进制除法问题通常以重复的小数部分结束,比十进制记数法中出现的频率更高。由于“小数点”仅在十进制中使用,因此这一术语更为通用,适用于任何基数。
  14. Image titled Divide Binary Numbers Step 7

方法2方法2/2:使用补码法

  1. 1了解基本概念。解决除法问题的一种方法——在任何基数下——是不断从被除数中减去除数,然后再减去余数,同时统计在得到负数之前可以这样做的次数。这里有一个十进制的例子,解决问题26÷7:26-7=19(减去1次)19-7=12(2)12-7=5(3)5-7=-2。负数,请后退。答案是3,剩下的是5。请注意,此方法不计算答案的任何非整数部分。
  2. Image titled Divide Binary Numbers Step 8
  3. 2学习用补码进行减法运算。虽然您可以轻松地在二进制中使用上述方法,但我们也可以使用一种更有效的方法进行减法,这样可以在编程计算机进行二进制数除法时节省时间。这是二进制中的补码减法。以下是计算111-011的基础知识(确保两个数字的长度相同):找到第二项的1的补码,从1中减去每个数字。通过将每个1切换到0和将每个0切换到1,可以轻松地在二进制中完成此操作。在我们的示例中,011变为100。在结果中添加一个:100+1=101。这称为二补,让我们将减法作为加法问题来执行。从本质上讲,一旦我们完成这个过程,结果就好像我们加了一个负数而不是减去一个正数。将结果添加到第一个术语。编写并解决加法问题:111+101=1100。丢弃进位数字。放弃答案的第一个数字以获得最终结果。1100→ 100
  4. 3结合上述两个概念。现在你知道了解决除法问题的减法,以及解决减法问题的二人互补法。您可以使用以下步骤将其组合为一种解决除法问题的方法。如果你愿意,你可以在继续之前自己想一想。
  5. 4从被除数中减去除数,加上2的补码。让我们看一下问题100011÷000101。第一步是求解100011-000101,使用两个补码方法将其转化为加法问题:两个补码000101=111010+1=11101110011+111011=1011110丢弃进位→ 011110
  6. Image titled Divide Binary Numbers Step 11
  7. 5在商中加一。在计算机程序中,这是将商增加1的点。在纸上,在角落的某个地方做个笔记,这样就不会与你的其他工作混淆。我们已经成功地减去了一次,所以目前的商是1。
  8. Image titled Divide Binary Numbers Step 12
  9. 6从余数中减去除数,重复上述步骤。我们上次计算的结果是除数“进入”一次后剩下的余数。继续每次将除数的两个补码相加,并丢弃进位。每次向商中添加一个,重复,直到得到一个等于或小于除数的余数: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(无余数)。
  10. Image titled Divide Binary Numbers Step 13
  • 计算前忽略有符号二进制数中的有符号数字,除非确定答案是正还是负。
  • 如果你的数字有不同的位数,那么两个补减法就行不通了。将初始零添加到较小的数字以修复此问题。
  • 在将二进制数学应用于机器指令集之前,必须考虑递增、递减或弹出堆栈的指令。

你可能感兴趣的文章

除数(divisor)和股息(dividend)的区别

...a=5和b=2,q和r的唯一值分别为2和1,即5=2*2+1。这表明,当5除以整数集中的2时,答案是2,剩下的是1的余数。 But in the set of real numbers the division there is no remainder. Let a, b (≠0) be two real numbers, then  if and only if   什么是除数? C***ider ...

  • 发布于 2020-11-04 12:47
  • 阅读 ( 567 )

为什么十六进制编辑器被称为二进制编辑器?

...超级用户读者Joseph A.想知道为什么十六进制编辑器被称为二进制编辑器: Hex and binary are two different bases. Hex, as I understand it, is simply an “easier to use” version of binary and more convenient. However, I hear quite often that hex editors are binary editors. I...

  • 发布于 2021-04-09 19:59
  • 阅读 ( 223 )

理性的(rational)和无理数(irrational numbers)的区别

...被引用的22/7的常数π 事实上只是π. 根据定义,圆的周长除以半径的两倍就是π. 这导致了多重价值观π, 包括但不限于333/106、355/113等1。 只有平方数的平方根;i、 例如,完美平方的平方根是有理的。 √1=1(有理) √2(非理性...

  • 发布于 2021-06-24 19:08
  • 阅读 ( 330 )

位(bits)和字节(bytes)的区别

...了表示数字,现代计算机使用由两个数字(0和1)组成的二进制系统位”是指在这个系统中可以表示的最小数据单位的名称(位代表“二进制数字”)。i、 例如,在二进制数字方面,一个位由0或1组成。在组成计算机的电子设备...

  • 发布于 2021-06-27 07:22
  • 阅读 ( 270 )

线性搜索(linear search)和二进制搜索(binary search)的区别

线性搜索和二进制搜索的区别在于,在线性搜索中,每个元素都要经过检查和比较,然后进行排序;而在二进制搜索中,要排序的列表被分成两部分,然后进行排序。搜索和排序是计算机程序设计中的两个主要概念。许多算法...

  • 发布于 2021-07-08 11:05
  • 阅读 ( 245 )

布尔值(boolean)和二元的(binary)的区别

...用于逻辑演绎系统,称为布尔代数。在数学和计算机中,二进制是指一个以2为基数的数字符号。它由两个值0和1组成。这些数字使用位值结构进行组合以生成等效的数值。因此,两者基于相同的基本概念,但用于不同系统的上下...

  • 发布于 2021-07-13 16:35
  • 阅读 ( 380 )

线性搜索(linear search)和二进制搜索(带比较表)(binary search (with comparison table))的区别

...恰好为O(n)。其中n是输入范围内的元素数。 什么是二进制搜索(binary search)? 二进制搜索是从已排序的项目列表中查找项目的有效算法。它的工作原理是将列表中可能包含该项的部分重复划分为一半,直到您将可能的位置...

  • 发布于 2021-11-27 13:27
  • 阅读 ( 220 )

什么是二进制的(binary?)

二进制是一种使用两个数字来表示所有实数的数字系统。最常见的计数系统是十进制,它使用十个数字,二进制仅使用0和1。 ...

  • 发布于 2021-12-12 19:33
  • 阅读 ( 176 )

什么是二进制编码?(binary encoding?)

二进制编码是一种代码,主要用于在最基本的层次上为计算机编程。它由一个由1和0组成的系统组成,用于表示逻辑运算中的“真”或“假”值。二进制编码是克劳德·山南...

  • 发布于 2021-12-12 19:34
  • 阅读 ( 163 )

什么是二进制文件?(binaries?)

... 包含已编译计算机代码的文件称为二进制文件,有时可与目标文件互换使用。但是,任何文件都可以用这种格式编码,包括数字图形、电影或音乐。 ...

  • 发布于 2022-01-05 16:32
  • 阅读 ( 123 )
DUAN2215923
DUAN2215923

0 篇文章

相关推荐