将数字符号按顺序排列成数位,并遵照某种从低位到高位的进位方式计数来表示数值的方法称为进位计数制,简称计数制。
R进制的特点如下:
有0、1、┄、R-1共R个数字符号;
逢R进一;
位权是R的整数次幂。
2. 二进制基数R=2的进位计数制称为二进制。二进制数中只有0和1两个基本数字符号,进位规律是“逢二进一”。二进制数的位权是2的整数次幂。
3. 八进制基数R=8的进位计数制称为八进制。八进制有0、1、…、7共8个基本数字符号,进位规律是“逢八进一”。八进制数的位权是8的整数次幂。
4. 十六进制基数R=16的进位计数制称为十六进制。十六进制数中有0、1、…、9、A、B、C、D、E、F共16个数字符号,其中,A~F分别表示十进制数的10~15。进位规律为“逢十六进一”,十六进制数的位权是16的整数次幂。
5. 进制表示为了区别不同进制数,常在不同进制数字后加一个字母表示:
十进制数在数字后加字母D(Decimal)或不加字母;
二进制数在数字后加字母B(Binary)。八进制数在数字后加字母O(Octonary),但为了与0区别,改为Q;
十六进制数在数字后加字母H(Hexadecimal),若以A、B、C、D、E或F开头,则需要加前导词“0”,以便与标识符相区分。
6. 计数制间的转换将数由一种数制转换成另一种数制称为数制间的转换。
(1)位权表示法
位权是指一个数字在某个固定位置上所代表的值,处在不同位置上的数字符号所代表的值不同,每个数字的位置决定了它的值或者位权。位权与基数的关系是:各进位制中位权的值是基数的若干次幂。因此,用任何一种数制表示的数都可以写成按位权展开的多项式之和。
位权表示法的原则是数字的总个数等于基数;每个数字都要乘以基数的幂次,而该幂次是由每个数所在的位置所决定的。
(2)十进制数转换成非十进制数
十进制数转换成非十进制数时,可以分成两个部分(整数部分和小数部分)分别进行转换。
(a)整数部分的转换
二进制数的基数为2,所以十进制整数转换成二进制数的方法适用下例规则:“除2倒取余数,直到商为0。”具体方法是用十进制整数除以基数2,若商不为0,则继续用商除以基数2,直到商为0,最后将余数自下而上排列。
(b)小数部分的转换
小数部分的转换规则是:“乘2正取进位数。”具体方法是用十进制小数乘以基数2,取出乘积的整数,若乘积的小数部分不为0或还没有达到所要求的精度,则继续用小数部分乘以基数2,直到乘积为0或达到所要求的精度为止,最后将所取出的整数自上而下排列,作为转换后的小数。
(3)非十进制数之间的相互转换
以十进制数为桥梁,将需要转换的源数据转换为十进制数,然后将得到的十进制数转换为目的进制的数。但是这种方法存在两个方面的缺点:一是转换过程较为复杂;二是小数部分转换时容易引起较大的误差。
其实八、十六和二进制数的基数之间存在着一种幂关系,根据这种幂关系来转换可以克服上述方法的缺点。
八进制数和二进制数之间的转换
将八进制数转换为二进制数时,可以按位将每一位八进制数展开为对应的三位二进制数。同理,当需要将二进制数转换为八进制数时,可以按位将每三位二进制数组合为对应的一位八进制数。
组合二进制数时整数部分按从低位到高位的顺序组合,而小数部分按从高位到低位的顺序组合。当位数不足三位时,可补“0”填充,整数部分在前面补“0”,而小数部分则在后面补“0”,因为这样补“0”不会影响原数据的数据值。
十六进制数和二进制数之间的转换
将十六进制数转换为二进制数时,可以按位将每一位十六进制数展开为对应的四位二进制数。同理,当需要将二进制数转换为十六进制数时,可以按位将每四位二进制数组合为对应的一位十六进制数。
八进制数和十六进制数之间的转换:可以以二进制数为桥梁。即将需要转换的源数据按位展开为二进制数,然后将得到的二进制数按位组合为目的进制的数。
知识点:
数制间转换