初面网初面网

说明

数据结构与算法是一名程序员必备的技能。熟练使用的话,可以大幅度降低在处理数据时的各种问题难度。

进制及进制转换

计算机中可以以多种进制对数据进行存储。存到硬件中常用二进制,但是平时使用时更多用到十进制和十六进制,八进制也会有所应用。请记住各种进制的英文缩写表示

二进制八进制十进制十六进制
BINOCTDECHEX

在有些时候,用户也需要进制进行转换。

  • 各种进制转十进制

其他进制转十进制的规则比较简单,按如下规则进行运算即可。

进制位*进制^所在位,将每一位相加

例如:

二进制1000转为十进制,即为:

1*2^3+0*2^2+0*2^1+0*2^0 = 8

八进制7271转为十进制为:

7*8^3 + 2*8^2 + 7*8^1 + 1*8^0 = 3769

十六进制AF12转为十进制为:

10*10^3 + 15*10^2 + 1*10^1 + 2*10^0 = 44818

其中,十六进制的A/B/C/D/E/F,分别对应十进制的10,11,12,13,14,15

  • 十进制转其他进制

以十进制数除进制取余,将余数倒着拼接

例如:

5352转到

十六进制是 14E8

八进制是 12350

二进制是 0001 0100 1110 1000

  • 二进制转其他进制

转十六进制时,将二进制每四位看做一组,将其表示值与十六进制的数位一一对应

转八进制时规则与十六进制相似,只是需要将二进制每三位看做一组

二进制转其他位时有快捷办法。以 1001 1100为例,从最右端向左的代表值依次是2^0,2^1,2^2, 2^3...以此类推。这样算得的结果即是十进制的值(156)。

按照转八进制的规则,每三位一组,则1001 1100可看做010 011 100,每一组从右向左依次是2^0,2^1,2^2。所以这里,010代表2, 011代表3, 100代表4, 则对应的八进制为234

类似于八进制,十六进制则是四个数一组,所以 1001 1100中,1001代表9, 1100代表C, 所以对应的十六进制为9C

由于转换时,常常是四个一组地去看数,且从左往右代表的数值分别是2^3=8,2^2=4,2^1=2,2^0=1,所以这种快捷转码方法也被称作"8421码"。

更新于 2025/2/26