如何划分二进制数

作者: Mark Sanchez
创建日期: 2 一月 2021
更新日期: 1 七月 2024
Anonim
烧脑面试题:老鼠和毒药问题怎么解?二进制和易经八卦有啥关系?李永乐老师告诉你
视频: 烧脑面试题:老鼠和毒药问题怎么解?二进制和易经八卦有啥关系?李永乐老师告诉你

内容

二进制数可以分成几列以更好地理解过程本身或编写一个简单的计算机程序。也可以使用补码法,编程中很少用到。通常,机器语言会使用评分算法来提高效率,但这不是本文要讨论的内容。

脚步

方法 1 of 2:长除法

  1. 1 按列划分 两个十进制数。 如果您忘记了长除法,请将两个十进制(以 10 为基数)相除:172 ÷ 4。如果长除法很好,请转到下一步学习如何除法二进制数。
    • 股利 除以 分隔线 事实证明 私人的.
    • 将除数与被除数的第一位进行比较。如果除数大于此数字,则将除数与被除数的两位数进行比较,依此类推,直到除数小于相关数字。在我们的例子中,比较 4 和 1,注意 4>1,然后比较 4 和 17。
    • 在除数下面写出商的第一位数字。比较 4 和 17,你会看到 17 ÷ 4 = 4 有余数,所以写 4 作为除数 (4) 下商的第一位数字。
    • 乘法和减法求余数。将商的第一位乘以除数;在我们的示例中:4 x 4 = 16。在 17 下写出 16,然后减去 17 - 16 以找到 1 的余数。
    • 重复比较。将除数4与1的余数进行比较,注意4>1,将被除数的下一位“进位”以将4与12进行比较。由于12÷4=3没有余数,所以写3作为第二位商。最终答案是 43。
  2. 2 列除以两个二进制数。 例如,10101 ÷ 11。这里 10101 是被除数,11 是除数。留出足够的计算空间。
  3. 3 将除数与被除数的第一位进行比较。 在二进制数的情况下,这比十进制数更容易做到:要么数字不能被除数整除而我们写 0,要么它被除数而我们写 1。
    • 11>1,所以1不能被11整除。写0作为商的第一个数字(在除数下面)。
  4. 4 继续比较除数,直到得到 1。 在我们的例子中:
    • 将除数与被除数的两位数进行比较。 11> 10. 写 0 作为商的第二个数字。
    • 将除数与被除数的三位数字进行比较。 11 101. 写 1 作为商的第三位。
  5. 5 计算余数。 将找到的数字(1)乘以除数(11)并将结果写在被除数下(即在相应数字下)。请注意,将 1 乘以除数总是会产生除数。
    • 在被除数下写出除数。在我们的示例中,在被除数的前三位数字 (101) 下写上 11。
    • 减去 101 - 11 得到 10 的余数。如果您不记得如何减去二进制数,请阅读这篇文章。
  6. 6 重复上述步骤,直到您解决问题。 将被除数的下一位与余数相加得到 100。由于 11 100,因此将商的第四位写为 1。进一步计算:
    • 在 100 下写 11 并减去得到 1 的余数;
    • 将被除数的最后一位与余数相加得到 11;
    • 11 = 11,所以写 1 作为商的最后一位。
    • 没有剩余,所以问题解决了。回答: 00111 或者只是 111。
  7. 7 添加小数点(如果需要)。 有时结果不是整数。如果用完被除数的最后一位后得到余数,则在被除数上加上“,0”,在商上加上“,”,以“拆除”下一位并继续计算。重复这个过程直到你得到你想要的结果,然后把你的答案四舍五入。要对结果进行四舍五入,请去掉最后一个 0,或者如果最后一位数字为 1,则将其删除并在新的最后一位数字上加 1。编程时,请遵循标准舍入算法之一,以避免在二进制和十进制数之间转换时出错。
    • 将两个二进制数相除会导致小数部分重复;这种情况比除十进制数时更常见。
    • 请注意,小数点不仅用于十进制,还用于二进制表示法。

方法 2 of 2:补充剂

  1. 1 了解基本原理。 要将两个数(十进制和二进制)相除,您可以从被除数中减去除数,然后从余数中连续减去除数,直到得到负数;在这种情况下,您需要计算执行了多少次减法。例如,计算 26 ÷ 7:
    • 26 - 7 = 19(1 减法)
    • 19 - 7 = 12 (2)
    • 12 - 7 = 5 (3)
    • 5 - 7 = -2。一个负数,所以你不需要进一步减去。答案:3 余数为 5。请注意,此方法不计算答案的小数部分。
  2. 2 了解加法方法的基础知识。 上述方法可以应用于二进制数,也可以使用更有效的方法,在编程二进制数的除法时节省时间。这种方法称为补法。例如,减去 111 - 011(两个数字必须具有相同的位数):
    • 找到第二个数字的补码。为此,请从 1 中减去该数字的每个数字。在二进制中,只需将 1 替换为 0,将 0 替换为 1。在我们的示例中,011 变为 100。
    • 加 1:100 + 1 = 101 到你的结果中。这个过程被称为二进制补码,允许你用加法代替减法。基本上,这种方法是您添加一个负数而不是减去一个正数。
    • 将结果与第一个数字相加。记下并计算加法运算:111 + 101 = 1100。
    • 去掉结果的第一个数字得到最终答案:1100 → 100.
  3. 3 结合上述两种方法。 第一种方法是顺序减法,第二种方法是二进制补码法。可以将这些方法合二为一,用它来划分数字(组合方法的过程如下所述)。如果您愿意,请尝试自己弄清楚如何将这两种方法结合起来。
  4. 4 从被除数中减去除数,用二进制补码加法代替减法。 例如:100011 ÷ 000101。首先,使用二进制补码将减法 100011 - 000101 转换为加法:
    • 二进制补码:000101 = 111010 + 1 = 111011
    • 加法:100011 + 111011 = 1011110
    • 去掉第一位数字:011110
  5. 5 将商加 1。 在计算机程序中,这是商加一的字符串。在纸上做个笔记,以免混淆。您已成功减去一次,因此此时商为 1。
  6. 6 重复上述过程。 为此,请从余数中减去除数。余数是上次计算的结果。用加法代替减法运算:将二的补数除数与余数相加,然后去掉结果的第一位。每次减法后,商加1,重复上述过程,直到余数等于或小于除数:
    • 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 添加到较低的数字(左侧)。
  • 在将二进制操作应用于机器指令之前,必须考虑增加、减少或弹出堆栈的指令。