二进制和进制转换

简介: 二进制和进制转换

前言

我们经常能听到2进制、8进制、10进制、16进制这样的讲法,那是什么意思呢?其实2进制、8进

制、10进制、16进制是数值的不同表示形式而已。

比如:数值15的各种进制的表示形式:

  • 15的2进制:1111
  • 15的8进制:17
  • 15的10进制:15
  • 15的16进制:F

我们重点介绍一下二进制:

首先我们还是得从10进制讲起,其实10进制是我们生活中经常使用的,我们已经形成了很多常识:

  • 10进制中满10进1
  • 10进制的数字每⼀位都是0~9的数字组成

以此类推,其实二进制也是⼀样的

  • 2进制中满2进1
  • 2进制的数字每⼀位都是0~1的数字组成

那么 1101 就是一个二进制的数字了。

1. 二进制转十进制

       其实10进制的123表示的值是一百二十三,为什么是这个值呢?其实10进制的每一位是有权重的,10进制的数字从右向左是个位、十位、百位....,分别每一位的权重是10^0,10^1,10^2……

如下图:10进制123每⼀位权重的理解

       2进制和10进制是类似的,只不过2进制的每⼀位的权重,从右向左是:2^0、2^1、2^2……

如果是2进制的1101,该怎么理解呢?

如图:2进制1101每⼀位权重的理解

 

2. 十进制转二进制

       方法:采用短除法,并且把余数写在商的左边,一直除2直到商为0停止。再由下往上依次所得的余数就是10进制换出的2进制。

如:10进制的125转换位为22进制:1111101

3. 二进制转八进制和十六进制

3. 1 二进制转八进制

       8进制的数字每一位是0~7,0~7的数字各自写成2进制,最多有3个2进制位就足够了,比如7的二进制是111,所以在2进制转8进制数的时候,从2进制序列中右边低位开始向左每3个2进制位会换算一个8进制位,剩余不够3个2进制位的直接换算。

如:2进制的01101011,换成8进制:0153,0开头的数字,会被当做8进制

3.2 二进制转十六进制

       16进制的数字每一位是0~9,a~f,0~9,a~f 的数字各自写成2进制,最多有4个2进制位就足够了,比如 f 的二进制是1111,所以在2进制转16进制数的时候,从2进制序列中右边低位开始向左每4个2进制位会换算一个16进制位,剩余不够4个二进制位的直接换算。

如:2进制的01101011,换成16进制:0x6b,16进制表示的时候前面加0x

4.总结

  • 非十进制转十进制:权重之和
  • 十进制转二进制:短除法
  • 二进制转八进制: 从2进制序列中右边低位开始向左每3个2进制位会换算一个8进制位,剩余不够3个2进制位的直接换算。
  • 二进制转十六进制:从2进制序列中右边低位开始向左每4个2进制位会换算一个16进制位,剩余不够4个二进制位的直接换算。

期待

您的支持给予我莫大的鼓励!!!


目录
相关文章
|
6天前
|
算法 数据处理 C语言
这么好用的二进制转十进制教程,你不会还不知道吧?
这么好用的二进制转十进制教程,你不会还不知道吧?
|
6天前
|
Python
十进制转二进制、八进制、十
十进制转二进制、八进制、十
|
10月前
进制转换_全
进制转换_全
|
小程序
ABCDEFG(进制转换::小转大)
ABCDEFG(进制转换::小转大)
64 0
进制转换详解
进制转换详解
273 0
进制转换详解
|
Go 开发者
其他进制转二进制 | 学习笔记
简介:快速学习其他进制转二进制
88 0
其他进制转二进制 | 学习笔记
|
程序员
笔记:二进制、八进制、十进制、十六进制的互相转换
二进制、八进制、十进制、十六进制的互相转换
笔记:二进制、八进制、十进制、十六进制的互相转换