admin管理员组

文章数量:1794759

二、八、十、十六进制介绍及相互转换

1、引言:

关于二进制、八进制、十进制、十六进制,相信大家都曾有过一些了解。然而,或许您对这些进制并没有深入的理解。接下来,本文将带您深入了解这些数制,让您对它们有更清晰的认知,并掌握它们之间的转换方法。

2、进制介绍及区分

2.1 介绍

二进制,八进制,十进制,十六进制指的是数值的不同表示形式。

举个例子:

假设数值就是我自己,无论处于何种情境,我的本质始终如一。就像在不同的场景中我有着不同的身份,在学校我是学生,在家里我是子女,在公司我是员工,在战场我是战士。无论我在学校、家里、公司还是战场,我这个人的本质是不变的。只是因为所处的“环境规则”不同,导致了外在的表现形式有所差异。

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

1152 进制:1111 215 8 进制:17 315 10 进制:15 415 16进制:F

尽管‘1111’ ‘17’ ‘15‘ ’F‘形式不同,但是他们都是指的是15这个数值。

2.2 区分

在上面的例子中,我们可以看到8进制172进制15实际上是相等的。如果没有事先告诉我们,只给出1715这两个数,我们该如何区分它们是8进制还是2进制呢?同样地,16进制F字符 F 又该如何区分呢?如果我们无法区分,那么计算机也无法识别它们。因此,我们需要一种方法来标记这些数字的进制,以确保计算机能够正确地识别它们。

因此,在计算机上写八进制和十六进制的数值时,需要一些标记:

  • 16进制的数值之前写:0x
  • 8 进制的数值之前写:0

这样在输入到计算机的时候,计算机就可以很轻易的区分输入的值是上面形式了。

如图展示:

我们可以看到打印出来的结果都是15.

2.3 各进制的数字组成

10进制:0 1 2 3 4 5 6 7 8 9 ; 8进制:0 1 2 3 4 5 6 7 ; 16进制:0 1 2 3 4 5 6 7 8 9 a b c d e f ; 2进制:0 1

3、2进制与10进制

3.1 十进制的介绍

在介绍其它进制之前,我们先说一下10进制,十进制是我们生活中经常所使用的,因此我们也形成了一些常识:

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

3.2 二进制的介绍

当了解了10进制后,其实2进制也是一样的。

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

比如说1101就是2进制的数字了。

4、2进制与10进制的转换

4.1 二进制转十进制

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

如图:十进制表示123

百位

十位

个位

10进制的位

1

2

3

权重

10^2

10^1

10^0

权重值

100

10

1

求和

1*100

2*10

3*1

123

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

2进制的1101表示为10进制是多少呢?

如图:

2进制的位

1

1

0

1

权重

2^3

2^2

2^1

2^0

权重值

8

4

2

1

求和

1*8

1*4

0*2

1*1

13

2进制的1101转为10进制后的值为 13。

4.2 十进制转二进制

如果十进制数字比较小,也可以直接凑出来

二进制值

1

1

1

1

1

1

权重

2^5

2^4

2^3

2^2

2^1

2^0

对应值

32

16

8

4

2

1

比如说十进制数值25

25 = 16 + 8 + 1

因此25所对应的2进制表示为11001

5、8进制和16进制

5.1 八进制的介绍

  • 8进制满8进1
  • 8进制的数字每一位都是由0~7的数字组成
  • 8进制在计算机里表达要在前面加上0

8进制数字17 转10进制的值

8进制的位

1

7

10进制的值

权重

8^1

8^0

权重的值

8

1

求和

1*8

7*1

15

5.2 十六进制的介绍

  • 16进制满16进1
  • 16进制的数字每一位都是由0~9,a~f 组成
  • 16进制的数字在计算机表达上要在前面加上 0x

注意:之所以使用a~f来表示10~15是为了区分方便。

十六进制数字1f 转10进制的值

16进制的位

1

f

10进制值

权重

16^1

16^0

权重的值

16

1

求和

1*16

f*1

31

6、2进制转8进制和16进制

6.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进制。

2进制

0 1

1 0 1

0 1 1

8进制

1

5

3

八进制每一位用2进制表示:

8进制数字

2进制表示

0

000

1

001

2

010

3

011

4

100

5

101

6

110

7

111

6.2 二进制转十六进制

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

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

2进制

0 1 1 0

1 0 1 1

16进制

6

b

16进制每一位用2进制表示

16进制

2进制

0

0000

1

0001

2

0010

3

0011

4

0100

5

0101

6

0110

7

0111

8

1000

9

1001

a

1010

b

1011

c

1100

d

1101

e

1110

f

1111

7、8进制和16进制转2进制

需要借助10进制来间接转换

比如说想把8进制数字017转换为2进制数字,需要先将017转化为10进制数字15,然后15在转换成2进制数字:1111.十六进制亦是如此。

8、结语:

亲爱的读者朋友们,本篇文章到这里就结束啦!相信通过这篇文章,您已经对它们有了清晰的认知,在下一篇文章中,小编会更新C语言中的一些操作符,还会继续使用到本篇所提及的知识点,所以如果有所遗忘,一定要来看一看哟!!!

本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。 原始发表:2024-07-29,如有侵权请联系 cloudcommunity@tencent 删除计算机二进制

本文标签: 二八十十六进制介绍及相互转换