1.2 进位计数制
1.2.1 数制的概念
在日常生活和工作中,人们经常使用各种进制的计数方式,如广泛使用的十进制数,钟表计时采用的六十进制数,数字系统中采用的二进制数、八进制数和十六进制数等。
进位计数制简称数制,其计数方法是把数划分为不同的数位,由低位到高位逐位累加,当某一数位累计到一定数量之后,产生向高位的进位,同时本位清零。
数制的标识一般可采用数字下标法和字母下标法。数字下标法是在数据结尾加上基数作为下标,如(32.6)10,(10110011)2,(376)8,(2AF6)16等。字母下标法是在数据结尾采用字母作为下标,其中 D(Decimal)代表十进制数,B(Binary)代表二进制数,O(Octal)代表八进制数,H(Hexadecimal)代表十六进制数,如(32.6)D,(10110011)B,(376)O,(2AF6)H等。
不同数制包含的可使用的数码符号是不同的,而数码符号的个数称为该数制的基数,记作R。例如,常见的二进制数码符号是0和1,基数为2;八进制数码符号是0~7,基数为8;十进制数码符号是0~9,基数为10;十六进制数码符号是0~9,A~F,基数为16。某位的数码为“1”时所表征的数值大小,称为该数位的权值。
利用基数和权值的概念,可以把任意R进制数值DR用权值展开法公式展开,即将每位权值与该位的数码相乘后进行叠加,如式(1.2.1)所示。
在式(1.2.1)中,n是整数部分的位数,m是小数部分的位数,R是基数,Ri是第i位的权,ai是第i位的数码,因此某个数位上的数码ai所表示的数值等于数码ai与该位的权值Ri的乘积。
1.2.2 十进制数
十进制(Decimal)数共有0,1,2,3,4,5,6,7,8,9十个数码符号,每位数累计不能超过10,计满10就要向高位进1,同时本位清0;而从高位借来的1相当于低位的数10,遵循“满十进一,借一当十”的运算规则。
对照权值展开式(1.2.1),任意一个十进制数值可展开如下:
在式(1.2.2)中,ai是第i位的数码,可以是0~9中的任何一个;10为基数,10的正次幂对应整数部分,10的负次幂对应小数部分。
十进制数默认缺省/不做任何标记,或者可以用下标10或D表示十进制数,如十进制数68.36可以表示为68.36,(68.36)10或(68.36)D,并可展开为:
1.2.3 二进制数
十进制数虽然在日常生活和工作中应用很方便,但在数字系统中经常采用二进制(Binary)数。数字系统中存在两种不同工作状态的器件很多,如开关的接通和断开,晶体管的导通和截止,电位的高电平和低电平等。用二进制数的0和1来表示两种不同工作状态不仅可行,并且容易实现,因此二进制数在数字电路系统中得到广泛应用。
二进制数的数码符号只有0和1,进位基数为2,遵循“满二进一,借一当二”的运算规则。
对照权值展开法公式(1.2.1),任意一个二进制数可展开为:
在式(1.2.3)中,ai是第i位的数码,可以是0和1中的任何一个;2为基数,2的正次幂对应整数部分,2的负次幂对应小数部分。
二进制数一般用下标2或B表示,如(1011.011)2或(1011.011)B,并可展开为:
在二进制数中,二进制的数位经常称为“位”,因此在二进制数(1011.011)2中,整数有4位,小数有3位,并称最左边位为最高有效位(MSB),最右边位为最低有效位(LSB)。
【例1.2.1】进行二进制数(1010.011)2+(111.001)2的运算。
解:列出二进制加法算式为
所以,(1010.011)2+(111.001)2=(10001.100)2。
1.2.4 八进制数
八进制(Octal)数共有0,1,2,3,4,5,6,7这8个数码符号,进位基数为8,每计满8就要向高位进1,同时本位清0;而从高位借来的1,就相当于低位的数8,遵循“满八进一,借一当八”的运算规则。
对照权值展开式(1.2.1),任意一个八进制数可展开如下:
在式(1.2.4)中,ai是第i位的数码,可以是0~7中的任何一个。8为基数,8的正次幂对应整数部分,8的负次幂对应小数部分。
八进制数一般用下标8或者O表示,如(76.12)8或者(76.12)O,并可展开为:
1.2.5 十六进制数
为了简化对二进制数的书写、记忆和交流,经常将四位二进制数用一个十六进制(Hexadecimal)数表示。十六进制数共有0,1,2,3,4,5,6,7,8,9,A,B,C,D,E, F共16个数码符号,进位基数为16,每计满16就要向高位进1,同时本位清0;而从高位借来的1,就相当于低位的数16,遵循“满十六进一,借一当十六”的运算规则。
对照权值展开式(1.2.1),任意一个十六进制数可展开如下:
在式(1.2.5)中,ai是第i位的数码,可以是0~F中的任何一个;16为基数,16的正次幂对应整数部分,16的负次幂对应小数部分。
十六进制数一般用下标16或者字母H表示,如(3A.24)16或者(3A.24)H,并可展开为:
【例1.2.2】 完成十六进制数(1234)16+(5678)16的运算。
解:列出十六进制加法算式如下:
所以,(1234)16+(5678) 6= (68AC)16。