当前位置: > 手游资讯 > 新手问答 > 16进制转换10进制(10、进制转换:二进制、八进制、十六进制、十进制之间的转换)

16进制转换10进制(10、进制转换:二进制、八进制、十六进制、十进制之间的转换)

作者:哪吒游戏网 来源:哪吒游戏网 2020-08-22 21:26:21

16进制转换10进制(10、进制转换:二进制、八进制、十六进制、十进制之间的转换),哪吒游戏网给大家带来详细的16进制转换10进制(10、进制转换:二进制、八进制、十六进制、十进制之间的转换)介绍,大家可以阅读一下,希望这篇16进制转换10进制(10、进制转换:二进制、八进制、十六进制、十进制之间的转换)可以给你带来参考价值。

上节我们对二进制、八进制和十六进制进行了说明,本节重点讲解不同进制之间的转换,这在编程中经常会用到,尤其是C语言。

将二进制、八进制、十六进制转换为十进制

二进制、八进制和十六进制向十进制转换都非常容易,就是“按权相加”。所谓“权”,也即“位权”。

假设当前数字是N进制,那么:

更加通俗的理解是,假设一个多位数(由多个数字组成的数)某位上的数字是1,那么它所表示的数值大小就是该位的位权。

1) 整数部分

例如,将八进制数字53627转换成十进制:

53627 =5×84+ 3×83+ 6×82+ 2×81+ 7×80=22423(十进制)

从右往左看,第1位的位权为 80=1,第2位的位权为 81=8,第3位的位权为 82=64,第4位的位权为 83=512,第5位的位权为 84=4096 …… 第n位的位权就为 8n-1。将各个位的数字乘以位权,然后再相加,就得到了十进制形式。

注意,这里我们需要以十进制形式来表示位权。

再如,将十六进制数字9FA8C转换成十进制:

9FA8C =9×164+ 15×163+ 10×162+ 8×161+ 12×160=653964(十进制)

从右往左看,第1位的位权为 160=1,第2位的位权为 161=16,第3位的位权为 162=256,第4位的位权为 163=4096,第5位的位权为 164=65536 …… 第n位的位权就为 16n-1。将各个位的数字乘以位权,然后再相加,就得到了十进制形式。

将二进制数字转换成十进制也是类似的道理:

11010 = 1×24+ 1×23+ 0×22+ 1×21+ 0×20= 26(十进制)

从右往左看,第1位的位权为 20=1,第2位的位权为 21=2,第3位的位权为 22=4,第4位的位权为 23=8,第5位的位权为 24=16 …… 第n位的位权就为 2n-1。将各个位的数字乘以位权,然后再相加,就得到了十进制形式。

2) 小数部分

例如,将八进制数字423.5176转换成十进制:

423.5176=4×82+ 2×81+ 3×80+ 5×8-1+ 1×8-2+ 7×8-3+ 6×8-4=275.65576171875(十进制)

小数部分和整数部分相反,要从左往右看,第1位的位权为 8-1=1/8,第2位的位权为 8-2=1/64,第3位的位权为 8-3=1/512,第4位的位权为 8-4=1/4096…… 第m位的位权就为 8-m。

再如,将二进制数字1010.1101转换成十进制:

1010.1101 = 1×23+ 0×22+ 1×21+ 0×20+ 1×2-1+ 1×2-2+ 0×2-3+ 1×2-4=10.8125(十进制)

小数部分和整数部分相反,要从左往右看,第1位的位权为 2-1=1/2,第2位的位权为 2-2=1/4,第3位的位权为 2-3=1/8,第4位的位权为 2-4=1/16…… 第m位的位权就为 2-m。

更多转换成十进制的例子:

将十进制转换为二进制、八进制、十六进制

将十进制转换为其它进制时比较复杂,整数部分和小数部分的算法不一样16进制转换10进制,下面我们分别讲解。

1) 整数部分

十进制整数转换为 N 进制整数采用“除 N 取余,逆序排列”法。具体做法是:

把先得到的余数作为N进制数的低位数字,后得到的余数作为N进制数的高位数字,依次排列起来,就得到了N进制数字。

下图演示了将十进制数字36926转换成八进制的过程:

从图中得知,十进制数字36926转换成八进制的结果为110076。

下图演示了将十进制数字42转换成二进制的过程:

从图中得知,十进制数字42转换成二进制的结果为101010。

2) 小数部分

十进制小数转换成 N 进制小数采用“乘 N 取整,顺序排列”法。具体做法是:

把取出的整数部分按顺序排列起来,先取出的整数作为N进制小数的高位数字,后取出的整数作为低位数字,这样就得到了N进制小数。

下图演示了将十进制小数0.930908203125转换成八进制小数的过程:

从图中得知,十进制小数0.930908203125转换成八进制小数的结果为0.7345。

下图演示了将十进制小数0.6875转换成二进制小数的过程:

从图中得知,十进制小数0.6875转换成二进制小数的结果为0.1011。

如果一个数字既包含了整数部分又包含了小数部分,那么将整数部分和小数部分开,分别按照上面的方法完成转换,然后再合并在一起即可。例如:

下表列出了前17个十进制整数与二进制、八进制、十六进制的对应关系:

十进制

0

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

二进制

0

1

10

11

100

101

110

111

1000

1001

1010

1011

1100

1101

1110

1111

10000

八进制

0

1

2

3

4

5

6

7

10

11

12

13

14

15

16

17

20

十六进制

0

1

2

3

4

5

6

7

8

9

A

B

C

D

E

F

10

注意,十进制小数转换成其他进制小数时,结果有可能是一个无限位的小数。请看下面的例子:

二进制和八进制、十六进制的转换

其实,任何进制之间的转换都可以使用上面讲到的方法,只不过有时比较麻烦,所以一般针对不同的进制采取不同的方法。将二进制转换为八进制和十六进制时就有非常简洁的方法,反之亦然。

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

二进制整数转换为八进制整数时,每三位二进制数字转换为一位八进制数字,运算的顺序是从低位向高位依次进行,高位不足三位用零补齐。下图演示了如何将二进制整数1110111100转换为八进制:

从图中可以看出,二进制整数1110111100转换为八进制的结果为1674。

八进制整数转换为二进制整数时16进制转换10进制,思路是相反的,每一位八进制数字转换为三位二进制数字,运算的顺序也是从低位向高位依次进行。下图演示了如何将八进制整数2743转换为二进制:

从图中可以看出,八进制整数2743转换为二进制的结果为。

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

二进制整数转换为十六进制整数时,每四位二进制数字转换为一位十六进制数字,运算的顺序是从低位向高位依次进行,高位不足四位用零补齐。下图演示了如何将二进制整数100转换为十六进制:

从图中可以看出,二进制整数100转换为十六进制的结果为2D5C。

十六进制整数转换为二进制整数时,思路是相反的,每一位十六进制数字转换为四位二进制数字,运算的顺序也是从低位向高位依次进行。下图演示了如何将十六进制整数A5D6转换为二进制:

从图中可以看出,十六进制整数A5D6转换为二进制的结果为10110。

在C语言编程中,二进制、八进制、十六进制之间几乎不会涉及小数的转换,所以这里我们只讲整数的转换,大家学以致用足以。另外,八进制和十六进制之间也极少直接转换,这里我们也不再讲解了。

总结

本节前面两部分讲到的转换方法是通用的,任何进制之间的转换都可以采用,只是有时比较麻烦而已。二进制和八进制、十六进制之间的转换有非常简洁的方法,所以没有采用前面的方法。

总结:以上内容就是针对16进制转换10进制(10、进制转换:二进制、八进制、十六进制、十进制之间的转换)详细阐释,如果您觉得有更好的建议可以提供给哪吒游戏网小编,16进制转换10进制(10、进制转换:二进制、八进制、十六进制、十进制之间的转换)部分内容转载自互联网,有帮助可以收藏一下。



上一篇: 支付宝加好友(支付宝怎么添加好友,支付宝钱包怎么加朋友(正盟教你))

下一篇:

本文标签:
猜你喜欢