【C语言从零到入门】知识储备④:进制转换

一、 进制的概念

什么是进制?

几进制就是逢几进一,例如我们平时用的数字是就是十进制数,它就是逢十进一。

在计算机中,最常用的就是二进制、八进制和十六进制。

名称 英文 简写
十进制 Decimal D
二进制 Binary B
八进制 Octal O
十六进制 Hexadecimal H

二、进制间的转换

1. 十进制转其他进制

a)整数间的转换

将十进制转换为其他进制的一般使用短除法进行转换

例如:我们要把十进制的100转换为8进制

  1. 先将100/8 = 12余4,将得数写在100下面,余数写在100的左面
    在这里插入图片描述

  2. 12还可以再除8,12/8 = 1 余 4,这时发现1不能再整除8了,所以可以得到结果了
    在这里插入图片描述

  3. 最后我们将得数倒序,所以10进制数100转换为8进制就是144。
    在这里插入图片描述

    要将10进制转换为几进制就除几,例如要转换为16进制就将上面的除数8换为16

    如果出现余数或得数大于等于10的情况,就需要字母来表示数:用A表示10,B表示11,C表示12…以此类推

    例如:将十进制195转换为十六进制就是C3

在这里插入图片描述

b)小数间的转换

例如:将十进制0.125转换为二进制

  1. 将0.125 x 2 = 0.25,取0.25的整数位0
    在这里插入图片描述

  2. 将0.25 x 2 = 0.5,取0.5的整数位0
    在这里插入图片描述

  3. 将0.5 x 2 = 1.0,取1.0的整数位1,这时,1的小数位已经为0,所以得到最终结果0.001

在这里插入图片描述

总结:

转换为几进制就乘几,直到得数的小数位为0

2. 其他进制转十进制

“权”的概念:

对于一个数,它的小数点前一位数的权是0,向左依次递增,向右依次递减

在这里插入图片描述

a)整数间的转换

将二进制 1010转换为十进制:

在这里插入图片描述在这里插入图片描述

如果要将其他进制的数字转换为10进制,只需要将上面的2换成对应的进制即可。

b)小数间的转换

二进制0.1010转换为十进制:

在这里插入图片描述
在这里插入图片描述

3. 非十进制间的转换

非10进制间的转换需要先将其转换为10进制,再进行转换。

4. 常用进制间的转换

1)二进制和十六进制整数间的转换

二进制 十六进制 二进制 十六进制
0000 0 1000 8
0001 1 1001 9
0010 2 1010 A
0011 3 1011 B
0100 4 1100 C
0101 5 1101 D
0110 6 1110 E
0111 7 1111 F
  1. 二进制转换为十六进制即“四位一转

    从右向左,每四位分为一组(位数不够补0),最后查询上面的表即可得到结果

    例如:将二进制的10100转换为16进制

    ① 首先从右开始进行分组

    ​ 1(0100)

    ② 这时发现前面只有一位,不够4位,那我们就用0将它补齐

    ​ (0001)(0100)

    ③ 最后查询表得到结果

    ​ 14

  2. 16进制转2进制即一转四位

    例如:16进制的 1F转换为2进制

    ① 经查表 ,F对应二进制的1111,1对应二进制的0001

    ② 所以得到

    ​ 00011111

    ③ 最后我们将前面的0去掉,就得到了结果

    ​ 11111

2)二进制和八进制整数间的转换

二进制 八进制 二进制 八进制
000 0 100 4
001 1 101 5
010 2 110 6
011 3 111 7

二进制与八进制的转换与二进制和十六进制整数间的转换类似,只不过变成了“一对应三”




三、小练习

在这里插入图片描述

如上图所示,我们用十六进制编辑器打开了一个文本文件,请问它的大小是多少?




































解析

结合上节内容可以知道计算文件大小,只能将其转换为二进制再进行计算

根据上面的知识可以知道十六进制与二进制是“1对应4”,所以由图可知这个文件的大小是14 x 4 = 56 位

为了表示方便,通常将其换算为字节,所以

它的大小是56 ÷ 8 = 7 Byte


好了,文章到这里就结束了,我们下一节再见。

原创文章 10 获赞 11 访问量 1068

猜你喜欢

转载自blog.csdn.net/qq_34802028/article/details/105956227