美文网首页
十进制整数与二进制数转换

十进制整数与二进制数转换

作者: AlphaHinex | 来源:发表于2021-03-21 10:03 被阅读0次

原文地址:https://alphahinex.github.io/2021/03/21/decimal-binary-conversion/

cover

description: "虽然不常用,但是很重要"
date: 2021.03.21 10:34
categories:
- Others
tags: [Java, JavaScript]
keywords: 十进制, 二进制, Decimal, Binary


因为人类有十根手指,所以十进制计数法,是目前使用范围最广泛的计数方式。

但在计算机中,只有 0 和 1 两个数,所以需要进行转换。

本文主要介绍一下十进制 整数 与二进制数的转换方法。

十进制转二进制

方法一

十进制整数转二进制时,可将十进制整数除以 2(因为需转换为二进制数),得到余数,填入二进制低位,直至商为 0 时结束。

156 为例:

除数 被除数 余数
2 156 0
78

将余数 0 填入二进制数的低位

- - - - - - - 0

商不为 0,继续计算:

除数 被除数 余数
2 156 0
2 78 0
39

将余数 0 填入二进制数的低位

- - - - - - 0 0

继续运算至商为 0 时终止:

除数 被除数 余数
2 156 0
2 78 0
2 39 1
2 19 1
2 9 1
2 4 0
2 2 0
2 1 1
0

得到二进制表示为:

1 0 0 1 1 1 0 0

方法二

用十进制整数减 2 的指数(因为是要转换为二进制),直至减为 0 结束。

仍然以 156 为例,先将 2 的指数列出来:

512 256 128 64 32 16 8 4 2 1
2^9 2^8 2^7 2^6 2^5 2^4 2^3 2^2 2^1 2^0

156 减 2 的 7 次方(128)得 28,故在二进制数的第八位(从右往左数,第一位对应 2^0,第二位对应 2^1),填入 1(因为只能减掉一个 2^7)。

512 256 128 64 32 16 8 4 2 1
2^9 2^8 2^7 2^6 2^5 2^4 2^3 2^2 2^1 2^0
- - 1 - - - - - - -

156 - 128 = 28,28 只能减掉一个 16(2^4),故在第五位填入 1,中间第六第七位补 0 。

512 256 128 64 32 16 8 4 2 1
2^9 2^8 2^7 2^6 2^5 2^4 2^3 2^2 2^1 2^0
- - 1 0 0 1 - - - -

28 - 16 = 1212 = 2^3 + 2^2,故在第四位及第三位填 1,其余低位补 0 。

512 256 128 64 32 16 8 4 2 1
2^9 2^8 2^7 2^6 2^5 2^4 2^3 2^2 2^1 2^0
- - 1 0 0 1 1 1 0 0

二进制转十进制

二进制转十进制时,只需取出每位乘以对应的 2 的指数,并求和。

10011100 转十进制时的计算方式为:

1 * 2^7 + 0 * 2^6 + 0 * 2^5 + 1 * 2^4 + 1 * 2^3 + 1 * 2^2 + 0 * 2^1 + 0 * 2^0 = 128 + 0 + 0 + 16 + 8 + 4 + 0 + 0 = 156

其他进制

除了十进制和二进制之外,还有八进制、十六进制、二十进制等计数方法,均可通过上述方式进行转换。

参考资料

相关文章

  • 大厂面试高频题:十进制有理数转二进制算法

    十进制数转换为二进制数时,由于整数和小数的转换方法不同,所以先将十进制数的整数部分和小数部分分别转换后,再加以合并...

  • 非负整数十进制与二进制之间的转换

      本文将简单的讨论非负整数的N进制与十进制之间如何进行转换。 一、十进制与二进制的表示   先来看十进制数的表示...

  • (十六进制十进制二进制八进制)进制转换计算机基础

    1.十进制转R进制 1.1 十进制转二进制 十进制整数转二进制 十进制整数转换成二进制采用“除2倒取余”,十进制小...

  • 计算机中的浮点数

    一、十进制整数转二进制 1.十进制整数转换为二进制整数采用除2取余,逆序排列法。具体做法是: 用2整除十进制整数,...

  • iOS 二进制转换以及位运算

    进制之间的转换 十进制与二进制之间转换二进制转成十进制整数部分从个位开始,依次从2的0次方开始,让每位相加即可转换...

  • 进制运算

    二进制与十进制之间的转换 十进制转二进制 方法为:十进制数除2取余法,即十进制数除2,余数为权位上的数,得到的商值...

  • 进制转换

    一、二进制与十进制互相转换 1. 十进制转二进制 方法为:十进制数除2取余法,即十进制数除2,余数为权位上的数,得...

  • 一看就会的小程序(VC++ 十进制数转换为二进制并输出)

    VC++ 十进制数转换为二进制并输出,输入一个正整数,求余数,递归调用,转换为二进制输出。 项目源代码: 部分代码...

  • python 解析有符号的二进制

    有符号二进制数到十进制的转换 用下面的算法计算一个有符号二进制整数的十进制数值:如果最高位是 1,则该数是补码。再...

  • iOS学习笔记之字节操作

    二进制、十进制、十六进制 十进制转二进制 正整数 除二取余,然后倒序排列,高位补零 负整数 先是将对应的正整数转换...

网友评论

      本文标题:十进制整数与二进制数转换

      本文链接:https://www.haomeiwen.com/subject/inhwcltx.html