怎么把二进制数转化为十进制数

二进制 (基数为2) 数字系统中有两个可能值,在每一位上,通常表示为0或1。相反,在十进制 (基数为10) 数字系统中,在每一位上,有10个可能值 (0,1,2,3,4,5,6,7,8, 或9)。

在使用不同的数字系统时,为了避免混乱的产生,可将基数标记在某个数的下标位置。例如,可以把二进制数标明为 "基数为2"的数,即写作100111002。而十进制数156可写作15610,并读作"以10为基数的一百五十六"。

因为二进制系统是电子计算机的内部语言,因此真正的程序员应该掌握如何把二进制数转换为十进制数。而如果首先学习把十进制数转换为二进制数则相对更困难。

注意:这里只讨论数值的转换而非ASCII代码的转换。

方法 1 的 2:

按位记数法

  1. {"smallUrl":"https:\/\/www.zenmeban.com\/images_en\/thumb\/2\/28\/Convert-from-Binary-to-Decimal-Step-1-Version-2.jpg\/v4-460px-Convert-from-Binary-to-Decimal-Step-1-Version-2.jpg","bigUrl":"https:\/\/www.zenmeban.com\/images\/thumb\/2\/28\/Convert-from-Binary-to-Decimal-Step-1-Version-2.jpg\/v4-728px-Convert-from-Binary-to-Decimal-Step-1-Version-2.jpg","smallWidth":460,"smallHeight":345,"bigWidth":728,"bigHeight":546,"licensing":"<div class=\"mw-parser-output\"><\/div>"} 1 在本例中,我们将把二进制数100110112转换为十进制数。从左到右地列出2的幂。从20开始,结果为"1"。每向右移一位,就对其指数加1。列出的元素个数应等于二进制数的位数。在本例中,10011011有8位数字,因此应列出的8个元素:128, 64, 32, 16, 8, 4, 2, 1
  2. {"smallUrl":"https:\/\/www.zenmeban.com\/images_en\/thumb\/9\/96\/Convert-from-Binary-to-Decimal-Step-2-Version-2.jpg\/v4-460px-Convert-from-Binary-to-Decimal-Step-2-Version-2.jpg","bigUrl":"https:\/\/www.zenmeban.com\/images\/thumb\/9\/96\/Convert-from-Binary-to-Decimal-Step-2-Version-2.jpg\/v4-728px-Convert-from-Binary-to-Decimal-Step-2-Version-2.jpg","smallWidth":460,"smallHeight":345,"bigWidth":728,"bigHeight":546,"licensing":"<div class=\"mw-parser-output\"><\/div>"} 2 把二进制数上的每一位数字对应地写到列表下方。
  3. {"smallUrl":"https:\/\/www.zenmeban.com\/images_en\/thumb\/e\/e2\/Convert-from-Binary-to-Decimal-Step-3-Version-2.jpg\/v4-460px-Convert-from-Binary-to-Decimal-Step-3-Version-2.jpg","bigUrl":"https:\/\/www.zenmeban.com\/images\/thumb\/e\/e2\/Convert-from-Binary-to-Decimal-Step-3-Version-2.jpg\/v4-728px-Convert-from-Binary-to-Decimal-Step-3-Version-2.jpg","smallWidth":460,"smallHeight":345,"bigWidth":728,"bigHeight":546,"licensing":"<div class=\"mw-parser-output\"><\/div>"} 3 从右边开始,画出线条,用于把二进制数中连续的数字和其上方的2的幂连接起来。从右边开始,画一条线,把二进制数的第一个数字和2的第一个幂值连接起来。然后,画一条线,把二进制数的第二个数字和2的第二个幂值连接起来。依次类推,画出线条把每一个数字和对应的幂值连接起来。
  4. {"smallUrl":"https:\/\/www.zenmeban.com\/images_en\/thumb\/e\/ef\/Convert-from-Binary-to-Decimal-Step-4-Version-2.jpg\/v4-460px-Convert-from-Binary-to-Decimal-Step-4-Version-2.jpg","bigUrl":"https:\/\/www.zenmeban.com\/images\/thumb\/e\/ef\/Convert-from-Binary-to-Decimal-Step-4-Version-2.jpg\/v4-728px-Convert-from-Binary-to-Decimal-Step-4-Version-2.jpg","smallWidth":460,"smallHeight":345,"bigWidth":728,"bigHeight":546,"licensing":"<div class=\"mw-parser-output\"><\/div>"} 4 扫描二进制数中的每一位数字。如果对应的数字为1,则在线条下方写下对应的2的幂值。如果对应的数字为0,则在线条下方写下0。
  5. {"smallUrl":"https:\/\/www.zenmeban.com\/images_en\/thumb\/1\/16\/Convert-from-Binary-to-Decimal-Step-5-Version-2.jpg\/v4-460px-Convert-from-Binary-to-Decimal-Step-5-Version-2.jpg","bigUrl":"https:\/\/www.zenmeban.com\/images\/thumb\/1\/16\/Convert-from-Binary-to-Decimal-Step-5-Version-2.jpg\/v4-728px-Convert-from-Binary-to-Decimal-Step-5-Version-2.jpg","smallWidth":460,"smallHeight":345,"bigWidth":728,"bigHeight":546,"licensing":"<div class=\"mw-parser-output\"><\/div>"} 5 把线条下方的数相加。所得总和为155。这就是二进制数10011011对应的十进制数。或者写成基数下标的形式:
  6. {"smallUrl":"https:\/\/www.zenmeban.com\/images_en\/thumb\/9\/93\/Convert-from-Binary-to-Decimal-Step-6-Version-2.jpg\/v4-460px-Convert-from-Binary-to-Decimal-Step-6-Version-2.jpg","bigUrl":"https:\/\/www.zenmeban.com\/images\/thumb\/9\/93\/Convert-from-Binary-to-Decimal-Step-6-Version-2.jpg\/v4-728px-Convert-from-Binary-to-Decimal-Step-6-Version-2.jpg","smallWidth":460,"smallHeight":345,"bigWidth":728,"bigHeight":546,"licensing":"<div class=\"mw-parser-output\"><\/div>"} 6 以上方法熟悉后,你将记得2的每一个幂值,因此可以省略第1步。
方法 2 的 2:

双倍法

  1. 1 该方法不需要使用幂运算。因此,当你通过心算转换较大的数值时,该方法更简单,因为你只需要记下部分和。
  2. {"smallUrl":"https:\/\/www.zenmeban.com\/images_en\/thumb\/1\/1d\/Convert-from-Binary-to-Decimal-Step-8-Version-2.jpg\/v4-460px-Convert-from-Binary-to-Decimal-Step-8-Version-2.jpg","bigUrl":"https:\/\/www.zenmeban.com\/images\/thumb\/1\/1d\/Convert-from-Binary-to-Decimal-Step-8-Version-2.jpg\/v4-728px-Convert-from-Binary-to-Decimal-Step-8-Version-2.jpg","smallWidth":460,"smallHeight":345,"bigWidth":728,"bigHeight":546,"licensing":"<div class=\"mw-parser-output\"><\/div>"} 2 从给定二进制数最左边的数字开始。对于每一位数字,你向右移动,对之前所得总和乘以2并加上当前数值。例如,把10110012转换为十进制数,我们将采用如下步骤:
  3. {"smallUrl":"https:\/\/www.zenmeban.com\/images_en\/thumb\/7\/7b\/Convert-from-Binary-to-Decimal-Step-9-Version-2.jpg\/v4-460px-Convert-from-Binary-to-Decimal-Step-9-Version-2.jpg","bigUrl":"https:\/\/www.zenmeban.com\/images\/thumb\/7\/7b\/Convert-from-Binary-to-Decimal-Step-9-Version-2.jpg\/v4-728px-Convert-from-Binary-to-Decimal-Step-9-Version-2.jpg","smallWidth":460,"smallHeight":345,"bigWidth":728,"bigHeight":546,"licensing":"<div class=\"mw-parser-output\"><\/div>"} 3 1011001 → 0 * 2 + 1 = 1
  4. {"smallUrl":"https:\/\/www.zenmeban.com\/images_en\/thumb\/8\/88\/Convert-from-Binary-to-Decimal-Step-10-Version-2.jpg\/v4-460px-Convert-from-Binary-to-Decimal-Step-10-Version-2.jpg","bigUrl":"https:\/\/www.zenmeban.com\/images\/thumb\/8\/88\/Convert-from-Binary-to-Decimal-Step-10-Version-2.jpg\/v4-728px-Convert-from-Binary-to-Decimal-Step-10-Version-2.jpg","smallWidth":460,"smallHeight":345,"bigWidth":728,"bigHeight":546,"licensing":"<div class=\"mw-parser-output\"><\/div>"} 4 1011001 → 1 * 2 + 0 = 2
  5. {"smallUrl":"https:\/\/www.zenmeban.com\/images_en\/thumb\/b\/bd\/Convert-from-Binary-to-Decimal-Step-11-Version-2.jpg\/v4-460px-Convert-from-Binary-to-Decimal-Step-11-Version-2.jpg","bigUrl":"https:\/\/www.zenmeban.com\/images\/thumb\/b\/bd\/Convert-from-Binary-to-Decimal-Step-11-Version-2.jpg\/v4-728px-Convert-from-Binary-to-Decimal-Step-11-Version-2.jpg","smallWidth":460,"smallHeight":345,"bigWidth":728,"bigHeight":546,"licensing":"<div class=\"mw-parser-output\"><\/div>"} 5 1011001 → 2 * 2 + 1 = 5
  6. {"smallUrl":"https:\/\/www.zenmeban.com\/images_en\/thumb\/d\/d1\/Convert-from-Binary-to-Decimal-Step-12-Version-2.jpg\/v4-460px-Convert-from-Binary-to-Decimal-Step-12-Version-2.jpg","bigUrl":"https:\/\/www.zenmeban.com\/images\/thumb\/d\/d1\/Convert-from-Binary-to-Decimal-Step-12-Version-2.jpg\/v4-728px-Convert-from-Binary-to-Decimal-Step-12-Version-2.jpg","smallWidth":460,"smallHeight":345,"bigWidth":728,"bigHeight":546,"licensing":"<div class=\"mw-parser-output\"><\/div>"} 6 1011001 → 5 * 2 + 1 = 11
  7. {"smallUrl":"https:\/\/www.zenmeban.com\/images_en\/thumb\/6\/61\/Convert-from-Binary-to-Decimal-Step-13-Version-2.jpg\/v4-460px-Convert-from-Binary-to-Decimal-Step-13-Version-2.jpg","bigUrl":"https:\/\/www.zenmeban.com\/images\/thumb\/6\/61\/Convert-from-Binary-to-Decimal-Step-13-Version-2.jpg\/v4-728px-Convert-from-Binary-to-Decimal-Step-13-Version-2.jpg","smallWidth":460,"smallHeight":345,"bigWidth":728,"bigHeight":546,"licensing":"<div class=\"mw-parser-output\"><\/div>"} 7 1011001 → 11 * 2 + 0 = 22
  8. {"smallUrl":"https:\/\/www.zenmeban.com\/images_en\/thumb\/4\/41\/Convert-from-Binary-to-Decimal-Step-14-Version-2.jpg\/v4-460px-Convert-from-Binary-to-Decimal-Step-14-Version-2.jpg","bigUrl":"https:\/\/www.zenmeban.com\/images\/thumb\/4\/41\/Convert-from-Binary-to-Decimal-Step-14-Version-2.jpg\/v4-728px-Convert-from-Binary-to-Decimal-Step-14-Version-2.jpg","smallWidth":460,"smallHeight":345,"bigWidth":728,"bigHeight":546,"licensing":"<div class=\"mw-parser-output\"><\/div>"} 8 1011001 → 22 * 2 + 0 = 44
  9. {"smallUrl":"https:\/\/www.zenmeban.com\/images_en\/thumb\/f\/f8\/Convert-from-Binary-to-Decimal-Step-15-Version-2.jpg\/v4-460px-Convert-from-Binary-to-Decimal-Step-15-Version-2.jpg","bigUrl":"https:\/\/www.zenmeban.com\/images\/thumb\/f\/f8\/Convert-from-Binary-to-Decimal-Step-15-Version-2.jpg\/v4-728px-Convert-from-Binary-to-Decimal-Step-15-Version-2.jpg","smallWidth":460,"smallHeight":345,"bigWidth":728,"bigHeight":546,"licensing":"<div class=\"mw-parser-output\"><\/div>"} 9 1011001 → 44 * 2 + 1 = 8910
  10. {"smallUrl":"https:\/\/www.zenmeban.com\/images_en\/thumb\/c\/c9\/Convert-from-Binary-to-Decimal-Step-16-Version-2.jpg\/v4-460px-Convert-from-Binary-to-Decimal-Step-16-Version-2.jpg","bigUrl":"https:\/\/www.zenmeban.com\/images\/thumb\/c\/c9\/Convert-from-Binary-to-Decimal-Step-16-Version-2.jpg\/v4-728px-Convert-from-Binary-to-Decimal-Step-16-Version-2.jpg","smallWidth":460,"smallHeight":345,"bigWidth":728,"bigHeight":546,"licensing":"<div class=\"mw-parser-output\"><\/div>"} 10 和按位记数法一样,本方法经调整后也能把基于任何基数的数转换为十进制数。在这里采用双倍法因为这里给定的数是以2为基数的。如果给定的数是基于不同的基数,则应本方法中的2换成对应的基数。例如,如果给定数是以37为基数,则你在计算时应把*2换为*37。而最终的结果则总是对应的十进制数(基数10)。 :)

小提示

  • 练习。尝试转换二进制数110100012、110012和111100012。它们对应的十进制数分别是20910、251010
  • Microsoft Windows上的计算器能帮助你完成不同数制中的数的转换,但作为一名程序员,你应该理解并掌握转换的方法。计算器中的转换选项可以通过选择"查看"菜单中的"科学型"(或 "程序员")。在Linux上,你可以使用galculator。

警告

  • 这里使用的是无符号二进制数,而非有符号数、浮点数或定点数。

<<:  怎么治疗背部拉伤

>>:  怎么让你的前男友想要挽回你

生活小贴士    

怎么知道一个人是否患有抑郁症

抑郁症是一种严重的心理健康问题。患有抑郁症的人需要得到支持和专业人士的帮助。如果你怀疑某人患有抑郁症...

怎么从iCloud中删除应用程序

虽然你从App Store下载的应用实际上并没有保存在iCloud中,但许多应用程序使用iCloud...

怎么取消领英网站的高级账户

领英是一个致力于帮助人们维系商业交往人脉的职业社交网站。如果你曾经注册过高级账户而现今却不再需要高级...

怎么在句子中使用Yet

“Yet”在英语中是一个有用的词,因为它能让你在一个句子中表达得更清楚。“Yet”可以用作副词来讨论...

怎么获得亚马逊促销码

亚马逊促销码,是在结账时输入的,一串字母数字混合的代码。通过搜索优惠券网站、查看月度交易、浏览亚马逊...