信息在现实世界中无处不在,表现形式有数字、字母、符号、图标、图像、声音等。然而,任何形式的信息都可以转换为二进制被计算机直接处理。在计算机内部无论是存储数据还是进行数据运算,一律采用二进制。
为什么计算机要采用二进制呢?原因如下:
人们在生产时间和日常生活中,创造了各种表示数的方法,这种数的表示系统称为数制。常见的数制有六十进制、十六进制、十进制、八进制、二进制。现在时间的数制就是六十进制。平常用得最多的就是十进制,而计算机内部使用的是二进制,有时候编程还要用到八进制和十六进制,通常颜色的值可以被表示为十六进制。
十进制每位数允许使用的是 0、1、2、3、4、5、6、7、8、9 十个数字符号中的一个,所以基数为 10。二进制每位数允许使用的是 0、1 两个数字符号中的一个,所以基数为 2。
也就是说,某种进制允许使用的数字符号有多少个,其基数就是多少。
无论什么进制,都可以用下面的规律进行表示:
每个数位上的数字所表示的数值等于该数字乘以位权。位权是以基数为底,以数字所在位置的序号为指数的整数幂。
如上图所示,二进制 01.1,用上述所说的表示法进行表示:
\[01.1=0×2^1+1×2^0+1×2^-1 \]比如,十进制 886.88,用上述所说的表示法进行表示:
\[886.88=9×10^2+8×10^1+6×10^0+7×10^-1+8×10^-2 \]其他进制转换为十进制非常简单,只需要按位权展开然后求和,就可以把其他进制的数转换为十进制。
将二进制数 1001 转换为十进制数:\(1001=1×2^3+0×2^2+0×2^1+1×2^0=9\)
将八进制数 35 转换为十进制数:\(35=3×8^1+5×8^0=29\)
将十六进制数 32CF 转换为十进制数:\(32CF=3×16^3+2×16^2+12×16^1+15×16^0=13007\)
十六进制第十一个数字字符为 A,第十六个数字字符为 F,中间依次顺序是 B、C、D、E,分别代表数字 11、12、13、14。
其他进制用 R 字母来代表,可以代表六、八、十六等进制。
如果将十进制的数转换为 R 进制的数,可以将十进制的整数部分和小数部分分离开来,然后按照下列规则转换:
下面,将示范十进制转换为 R 进制的案例:
1、将 237.8125 转换为二进制数
(1) 对整数进行转换,237 除 2 的余数
从低往上依次填写的余数就是二进制的整数部分,即 11101101。
(2) 对小数部分进行转换,0.8125 乘 2 取整
\(0.8125×2=1.625\) …… 整数部分为 1
\(0.625×2=1.25\) …… 整数部分为 1
\(0.25×2=0.5\) …… 整数部分为 0
\(0.5×2=1\) …… 整数部分为 1
从高往下依次填写的整数就是二进制的小数部分,即 0.1101。
经过计算器的验算,以上步骤结果正确,237.8125 的二进制数为 11101101.1101。
2、将 58506.8125 转换为八进制数
(1) 对整数部分进行转换,58506 除 8 的余数
从低往上依次填写的余数就是八进制的整数部分,即 162212。
(2) 对小数部分进行转换,0.8125 乘 8 取整
从高往下依次填写的整数就是二进制的小数部分,即 0.64。
经过计算器的验算,以上步骤结果正确,58506.8125 的八进制数为 162212.64。