LogoCSP Wiki By Yundou
扩展阅读

数的进制和进制转换

一、什么是进制?

进制(进位计数制)是一种用固定数量的符号(数码)和统一规则来表示数值的计数方法。它的核心思想是“逢N进一”,其中N称为基数(或底数)。例如:

  • 十进制(基数10):逢10进1,使用数码0-9。
  • 二进制(基数2):逢2进1,使用数码0、1。
  • 八进制(基数8):逢8进1,使用数码0-7。
  • 十六进制(基数16):逢16进1,使用数码0-9和A-F(或a-f)表示10-15。

二进制

二进制是计算机内部运算中采用的进制,在这样的进制系统下,只有 0,10,1 两个数字,计算机内部的所有运算(包括位运算)都是在二进制的基础上进行的。

但用二进制表示数字会让数字过长,因此为了方便表示的需要,通常会把二进制数转换为八进制或十六进制表示。

八进制

在八进制下,有 0,1,2,3,4,5,6,70,1,2,3,4,5,6,7 八个数字。

一般情况下,八进制数以 oxx(其中 o 为八进制的前缀,xx 代表八进制数)的形式来表示。

十六进制

在十六进制下,有 0,1,2,3,4,5,6,7,8,9,A(10),B(11),C(12),D(13),E(14),F(15)0,1,2,3,4,5,6,7,8,9,A(10),B(11),C(12),D(13),E(14),F(15) 十六个数字。

十六进制与二进制相比,最大的优点就是表示的数字长度较短,一位十六进制数可以表示 4 位二进制数。

一般情况下,十六进制数以 0xdbf(其中 0x 为十六进制数的前缀)的形式来表示。

进制间的相互转化

十进制转二进制/八进制/十六进制

这里以二进制为例来演示,其他进制的原理与其类似。

整数部分,把十进制数不断执行除 2 操作,直至商数为 0,之后从下到上,取所有余数的数字,即为二进制的整数部分数字。小数部分,则用其乘 2,取其整数部分的结果,再用计算后的小数部分依此重复计算,算到小数部分全为 0 为止,之后从上到下,取所有计算后整数部分的数字,即为二进制的小数部分数字。

将35.25转化为二进制数
整数部分:
35/2=17	......1
17/2=8	......1
8/2=4	......0
4/2=2	......0
2/2=1	......0
1/2=0	......1
小数部分:
0.25*2=0.5	0
0.5*2=1		1

35.25=(100011.01)235.25 = (100011.01)_2

十进制转八进制

图片描述

二进制/八进制/十六进制转十进制

还是以二进制为例。

二进制数转换为十进制数,只需将每个位的值,乘以 2i2^i 次即可,其中 ii 为当前位的位数,个位的位数为 0。

将11010.01(2)转换为十进制数
11010.01(2)=1*2^4+1*2^3+0*2^2+1*2^1+0*2^0+0*2^(-1)+1*2(-2)
        =26.25

(11010.01)2=(26.25)10(11010.01)_2 = (26.25)_{10}

二进制转十进制

图片描述

二进制/八进制/十六进制间的相互转换

一个八进制位可以用 3 个二进制位来表示(因为 23=82^3 =8),一个十六进制位可以用 4 个二进制位来表示(24=162^4 = 16),反之同理。

八进制转二进制

图片描述

八进制转十六进制

图片描述

\

On this page