当前位置:首页C++程序设计 > 正文

数的进制:二进制、八进制、十六进制和十进制及其转换

作者:野牛程序员:2023-02-27 08:39:07C++程序设计阅读 4919

数的进制是指用多少个不同的数字符号来表示数的大小,常见的进制有二进制、八进制、十六进制和十进制。

  1. 二进制

二进制只使用0和1两个数字符号来表示数的大小,是计算机中最基本的进制,因为计算机内部使用的就是二进制数。例如,二进制数1011表示的是十进制数11。

  1. 八进制

八进制使用0~7这8个数字符号来表示数的大小,例如,八进制数65表示的是十进制数53。在计算机中,八进制数使用前缀0来表示,例如077表示的是十进制数63。

  1. 十六进制

十六进制使用09和AF这16个数字符号来表示数的大小,其中AF分别表示十进制数1015。例如,十六进制数3F表示的是十进制数63。在计算机中,十六进制数使用前缀0x或者0X来表示,例如0x3F表示的是十进制数63。

  1. 十进制

十进制是我们平时使用的进制,使用0~9这10个数字符号来表示数的大小。例如,十进制数36表示的就是36。

转换:

  1. 二进制和八进制的转换

二进制转八进制可以将二进制数每3位一组,转换成相应的八进制数。例如,二进制数101101转换成八进制数的过程如下:

101101 -> 010 110 1 -> 2 6 1 -> 八进制数261

八进制转二进制可以将每个八进制数转换成3位的二进制数。例如,八进制数261转换成二进制数的过程如下:

2 -> 010
6 -> 110
1 -> 001

所以,八进制数261转换成二进制数为01011001。

  1. 二进制和十六进制的转换

二进制转十六进制可以将二进制数每4位一组,转换成相应的十六进制数。例如,二进制数11011101转换成十六进制数的过程如下:

1101 1101 -> D D -> 十六进制数DD

十六进制转二进制可以将每个十六进制数转换成4位的二进制数。例如,十六进制数FF转换成二进制数的过程如下:

F -> 1111
F -> 1111

所以,十六进制数FF转换成二进制数为11111111。

  1. 八进制和十六进制的转换

八进制转十六进制可以先将八进制数转换成二进制数,再将二进制数每4位一组,转换成相应的十六进制数。例如,八进制数576转换成十六进制数的过程如下:

576 -> 101 111 110 -> 5 7 6 -> 十六进制数576

十六进制转八进制可以将每个十六进制数转换成4位的二进制数,然后每3位一组转换成相应的八进制数。例如,十六进制数AE转换成八进制数的过程如下:

A -> 1010 -> 001 010 -> 12 -> 八进制数12
E -> 1110 -> 001 110 -> 16 -> 八进制数16

所以,十六进制数AE转换成八进制数为(12)16=(22)8。

  1. 二进制和十进制的转换

二进制转十进制可以将二进制数每一位乘上对应的权值,然后相加。例如,二进制数1101转换成十进制数的过程如下:

1*2^3 + 1*2^2 + 0*2^1 + 1*2^0 = 8 + 4 + 0 + 1 = 十进制数13

十进制转二进制可以使用除以2取余数的方法,将十进制数不断除以2,直到商为0为止,然后将余数倒序排列即可得到二进制数。例如,十进制数36转换成二进制数的过程如下:

36 / 2 = 18 余 0
18 / 2 = 9 余 0
9 / 2 = 4 余 1
4 / 2 = 2 余 0
2 / 2 = 1 余 0
1 / 2 = 0 余 1

所以,十进制数36转换成二进制数为100100。


  1. 八进制和十进制的转换

八进制转十进制可以将八进制数每一位乘上对应的权值,然后相加。例如,八进制数376转换成十进制数的过程如下:

3*8^2 + 7*8^1 + 6*8^0 = 192 + 56 + 6 = 十进制数254

十进制转八进制可以使用不断除以8取余数的方法,将十进制数不断除以8,直到商为0为止,然后将余数倒序排列即可得到八进制数。例如,十进制数369转换成八进制数的过程如下:

369 / 8 = 46 余 1
46 / 8 = 5 余 6
5 / 8 = 0 余 5

所以,十进制数369转换成八进制数为561。

  1. 不同进制之间的转换

在不同进制之间进行转换时,可以利用上面介绍的各种转换方法,例如将十六进制数转换成二进制数可以先将每个十六进制数转换成4位的二进制数,然后将它们连接起来即可得到二进制数。例如,十六进制数3A7B转换成二进制数的过程如下:

3 -> 0011
A -> 1010
7 -> 0111
B -> 1011

所以,十六进制数3A7B转换成二进制数为00111010100011111011。

类似地,将二进制数转换成十进制数可以先将二进制数转换成相应的十进制数,然后进行计算。例如,二进制数1011011转换成十进制数的过程如下:

1*2^6 + 0*2^5 + 1*2^4 + 1*2^3 + 0*2^2 + 1*2^1 + 1*2^0 = 64 + 0 + 16 + 8 + 0 + 2 + 1 = 十进制数91

总之,不同进制之间的转换可以根据不同的进制数位权值和进制数之间的关系来完成。在实际应用中,需要灵活掌握各种转换方法,以便能够快速、准确地完成进制数之间的转换。


  1. 其他进制

除了常见的二进制、八进制、十六进制和十进制之外,还有其他进制的表示方法,例如四进制、五进制、十二进制等。这些进制数的表示方法和转换方法与常见的进制类似,只是数位权值和进制数之间的关系不同而已。

例如,四进制数和五进制数的数位权值和进制数之间的关系如下:

  • 四进制数:个位的权值为4^0=1,十位的权值为4^1=4,百位的权值为4^2=16,以此类推。

  • 五进制数:个位的权值为5^0=1,十位的权值为5^1=5,百位的权值为5^2=25,以此类推。

同样地,将四进制数转换成五进制数可以先将四进制数转换成相应的十进制数,然后再将十进制数转换成五进制数。例如,四进制数3102转换成五进制数的过程如下:

3*4^3 + 1*4^2 + 0*4^1 + 2*4^0 = 48 + 16 + 0 + 2 = 十进制数66

将十进制数66转换成五进制数的过程如下:

66 / 5 = 13 余 1
13 / 5 = 2 余 3
2 / 5 = 0 余 2

所以,四进制数3102转换成五进制数为231。

总之,不同进制之间的转换方法都是类似的,只需要注意数位权值和进制数之间的关系即可。在实际应用中,需要根据实际情况选择适当的进制,并掌握各种进制之间的转换方法,以便能够灵活地进行进制数的运算和表示。


野牛程序员教少儿编程与信息学奥赛-微信|电话:15892516892
野牛程序员教少儿编程与信息学竞赛-微信|电话:15892516892
相关推荐

最新推荐

热门点击