繁体中文
设为首页
加入收藏

推荐文章

更多

07-14·[可控硅] 可控硅及其整流
07-14·[可控硅] 集成化六脉冲触发组件KCZ6电原理图
07-27·[单片机技术] PIC单片机16F84的内部硬件资源

 

最新文章

更多

· 制作一个PIC单片机编程器
· 制作一个PIC单片机编程器
· 小功率充电器的设计
· 自已动手制作AVR仿真器
· 89C51编程器
· 简易串行存储器拷贝器
· 小巧的数字显示频率计、...
· 小型快速电路板制版系统
· 电路板制作经验
· 单片hc244的ByteBlaster...
当前位置:技术文章首页 >> 制作与应用 >> 第一章 数制与编码(Number System and Codes)

第一章 数制与编码(Number System and Codes)

1970-01-01 08:00:00  作者:本站  来源:本站整理  浏览次数:196  文字大小:【】【】【

一、数字的进制

1、十进制数(Decimal Number)

  十进制数是日常生活中使用最广的计数制。组成十进制数的符号有0,1,2,3,4,5,6,7,8,9等共十个符号,我们称这些符号为数码。
  在十进制中,每一位有0~9共十个数码,所以计数的基数为10。超过9就必须用多位数来表示。十进制数的运算遵循加法时:“逢十进一”,减法时:“借一当十”。
  十进制数中,数码的位置不同,所表示的值就不相同。如:


式中,每个对应的数码有一个系数1000,100,10,1与之相对应,这个系数就叫做权或位权。
  对于位一十进制数可表示为:

N10=an-1×10n-1+an-2×10n-2+…+a1×101+a0×100+a-1×10-1+a-2×10-2+…+a-m×10-m
  =ai×10i

式中:ai 为0~9中的位一数码;10为进制的基数;10的i次为第i位的权;m,n为正整数,n为整数部分的位数,m为小数部分的位数。

2、二进制数(Binary Number)
与十进制相似,二进制数也遵循两个规则:
仅有两个不同的数码,即0,1;
进/借位规则为:逢二进一,借一当二。
对于任意一个二进制数可表示为:
N2=bi×2i
由于二进制数仅0,1两个数码,所以其运算规则比较简单,下现列出了二进制数进行加法和乘法的规则:
加法
乘法
0+0=0
0×0=0
0+1=1
0×1=0
0+1=1
1×0=0
0+1=10
1×1=1
上表中式1+1=10中的红色为进位位。
3、十六进制(Hexadecimal Number)

二进制数在计算机系统中处理很方便,但当位数较多时,比较难记忆及书写,为了减小位数,通常将二进制数用十六进制表示。
  十六进制是计算机系统中除二进制数之外使用较多的进制,其遵循的两个规则为:
  其有0,1,2,3,4,5,6,7,8,9,A,B,C,D,E,F等共十六个数码,其分别对应于十进制数的0~15;
  十六进制数的加减法的进/借位规则为:借一当十六,逢十六进一。
  十六进制数同二进制数及十进制数一样,也可以写成展开式的形式。


在数制使用时,常将各种数制用简码来表示:如十进制数用D表示或省略;二进制用B来表示;十六进制数用H来表示。
  如:十制数123表示为:123D或者123;二进制数1011表示为:1011B;十六进制数3A4表示为:3A4H。
  在计算机中除上面讲到的二进制、十进制、十六进制外,常常还会讲到八进制数,这里就不讨论了。
  下表列出了十进制0~16对应的二进制数和十六进制数。

十进制数
二进制数
十六进制数
0
0000
0
1
0001
1
2
0010
2
3
0011
3
4
0100
4
5
0101
5
6
0110
6
7
0111
7
8
1000
8
9
1001
9
10
1010
A
11
1011
B
12
1100
C
13
1101
D
14
1110
E
15
1111
F
16
10000
10

 

、各种进制相互转换

1、其它进制转换为十进制  
方法是:将其它进制按权位展开,然后各项相加,就得到相应的十进制数。

例1: N=(10110.101)B=(?)D
按权展开N=1*24+0*23+1*22+1*21+0*20+1*2-1+0*2-2+1*2-3
        
=16+4+2+0.5+0.125 =(22.625)D
2、 将十进制转换成其它进制  
方法是: 它是分两部分进行的即整数部分小数部分

整数部分:(基数除法)
把我们要转换的数除以新的进制的基数,把余数作为新进制的最低位; 
把上一次得的商在除以新的进制基数,把余数作为新进制的次低位;            
继续上一步,直到最后的商为零,这时的余数就是新进制的最高位.
小数部分: (基数乘法)
把要转换数的小数部分乘以新进制的基数,把得到的整数部分作为新进制小数部分的最高位
把上一步得的小数部分再乘以新进制的基数,把整数部分作为新进制小数部分的次高位;
继续上一步,直到小数部分变成零为止。或者达到预定的要求也可以。

例2 :  N=(68.125)D=(?)O
整数部分                         小数部分
                  
(68.125)D=(104.1)O

3、二进制与八进制、十六进制的相互转换

二进制转换为八进制、十六进制:它们之间满足23和24的关系,因此把要转换的二进制从低位到高位每3位或4位一组,高位不足时在有效位前面添“0”,然后把每组二进制数转换成八进制或十六进制即可
八进制、十六进制转换为二进制时,把上面的过程逆过来即可。
例3:N=(C1B)H=(?)B
(C1B)H=1100/0001/1011=(110000011011)B 

三、二进制的四则运算
二进制也可以进行四则运算,它的运算规则如下所示:
加运算 0+0=0,0+1=1,1+0=1,1+1=10        逢2进1
减运算 1-1=0,1-0=1,0-0=1,0-1=1(向高位借1当2)
乘运算 0*0=0,0*1=0,1*0=0,1*1=1
除运算 二进制只有两个数(0,1),因此它的商是1或0.
例1:求(1011101)B与(0010011)B之和 例2: 求(1101)B与(0101)B的乘积

通过例(1)我们再来介绍两个概念:半加和全加。

半加是最低位的加数和被加数相加时,不考虑低位向本位进位。
全加
是加数和被加数相加时,我们还要考虑低位向本位的进位。

数的原码、反码及补码
1、数的表示形式
 在生活中表示数的时候一般都是把正数前面加一个“+”,负数前面加一个“-”,但是在数字设备中,机器是不认识这些的,我们就把“+”用“0”表示,“-”用“1”表示。原码、反码和补码。这三种形式是怎样表示的呢?如下所示:
真值
原码
反码
补码

例1:求+12和-12八位原码、反码、补码形式
它们的原码分别为[+12]=00001100[-12]=100011      
它们的反码分别为[+12]*=00001100
[-12]*=(28-1)+(-1100)=11110011 
它们的补码分别为[+12]**=00001100
[-12]**=28+(-1100)=11110100

正数
+X
0X
0X
0X
负数
-X
1X
(2n-1)+X
2n+X

2、原码、反码及补码的算术运算
因为这三种数码表示法的形成规则不同,所以算术运算方法也不相同。

原码:与我们的日常中算术运算相同。
反码:
先转换为反码形式,再进行加减运算。它的减法可以按A+[-B]的形式进行.
补码:先转换为补码形式,再进行加减运算,其减法可以按A+[-B]进行.

3、溢出及补码运算中溢出的判断
 溢出可以描述为运算结果大于数字设备的表示范围。这种现象应当作故障处理。
   判断溢出是根据最高位的进位来判断的。

五、常用编码

1、BCD编码

  在数字系统中,各种数据要转换为二进制代码才能进行处理,而人们习惯于使用十进制数,所以在数字系统的输入输出中仍采用十进制数,这样就产生了用四位二进制数表示一位十进制数的方法,这种用于表示十进制数的二进制代码称为二-十进制代码(Binary Coded Decimal),简称为BCD码。它具有二进制数的形式以满足数字系统的要求,又具有十进制的特点(只有十种有效状态)。在某些情况下,计算机也可以对这种形式的数直接进行运算。常见的BCD码表示有以下几种。

  • 8421BCD编码

  这是一种使用最广的BCD码,是一种有权码,其各位的权分别是(从最有效高位开始到最低有效位)8,4,2,1。
   写出十进数563.97D对应的8421BCD码。
    563.97D=0101 0110 0011 . 1001 01118421BCD
   写出8421BCD码1101001.010118421BCD对应的十进制数。
    1101001.010118421BCD0110 1001 . 0101 10008421BCD=69.58D
  在使用8421BCD码时一定要注意其有效的编码仅十个,即:0000~1001。四位二进制数的其余六个编码1010,1011,1100,1101,1110,1111不是有效编码。

  • 2421BCD编码

  2421BCD码也是一种有权码,其从高位到低位的权分别为2,4,2,1,其也可以用四位二进制数来表示一位十进制数。其编码规则如下表。

2、余3码
  余3码也是一种BCD码,但它是无权码,但由于每一个码对应的8421BCD码之间相差3,故称为余3码,其一般使用较少,故正须作一般性了解,具体的编码如下表。

常见BCD编码表

十进制数 8421BCD码 2421BCD码 余3码
0 0000 0000 0011
1 0001 0001 0100
2 0010 0010 0101
3 0011 0011 0110
4 0100 0100 0111
5 0101 1011 1000
6 0110 1100 1001
7 0111 1101 1010
8 1000 1110 1011
9 1001 1111 1100
10 0001,0000 0001,0000 0100,0011

3、格雷反射码(循环码)

  格雷码是一种无权码,其特点是任意两个相邻的码之间只有一个数不同。另外由于最大数与最小数之间也仅一个数不同,故通常又叫格雷反射码或循环码。

十进制数 二进制数 格雷码 十进制数 二进制数 格雷码
0 0000 0000 8 1000 1100
1 0001 0001 9 1001 1101
2 0010 0011 10 1010 1111
3 0011 0010 11 1011 1110
4 0100 0110 12 1100 1010
5 0101 0111 13 1101 1011
6 0110 0101 14 1110 1001
7 0111 0100 15 1111 1000
4、奇偶校验码

在数据的存取、运算和传送过程中,难免会发生错误,把“1”错成“0”或把“0”错成“1”。奇偶校验码是一种能检验这种错误的代码。它分为两部分;信息位和奇偶校验位。
有奇数个“1”称为奇校验,有偶数个“1”则称为偶校验。

责任编辑:

启蒙电子http://www.51c51.net 启蒙电子网http://www.atc51.com 启蒙电子论坛
相关文章