材料01,
- 格式:doc
- 大小:214.00 KB
- 文档页数:7
是一个实际的微型计算机系统:
IBM PC/XT 系统板框图
1.2 计算机中的数制与码制
1.2.1 进位计数制
任意进位数N 都可由下式表示: N =∑--=1
n m i αi γi
其中γ=2,8,10,16称为基数 γ
i
:表示第i 位的一个固定值,称为权
α=[0,1,2,…γ-1]为第i 位的值。
一 . 不同进制数之间的转换:
计算机中常用的数制为2进制,8进制,10进制,16进制的。
按上式,一个十进制数256.74 各位按权展开并相加,表示为:
256.74=2×102+5×101+6×100+7×101-+4×102-
=200+50+6+0.7+0.04
=256.74
1)非十进制数转换成十进制数。
例一个二进制数101.1转换成十进制数为:
101.1=1×22+0×21+1×20+1×21-
=4+0+1+0.5=5.5
用这种方法我们可以将八进制与十六进制数转换成十进制数。
2) 十进制数转换为二进制数
方法:整数部分:除2取余法
小数部分:乘2取整法
十进制数转换为八进制,十六进制数依此类推。
也可以用观察法,例 (203)
10=( ? )
2
27 26 25 24 23 22 21 20
首先 203-128=75
然后 75-64=11
11-8=3
3-2=1
∴(203)
10=(11001011)
2
3)二进制与八进制和十六进制之间的转换
∵23=8 ∴3位二进制数对应一位八进制数。
∵24=16 ∴4位二进制数对应一位十六进制数。
(0000 0000)
2=(0
16
也表示成 0000 0000B = 00H
0000 1111B = 0F H
1010 0011B = A3H
反之: 5D H = 0101 1101B
4EC5H = 0100 1110 1100 0101B
1.2.2 二进制中带符号数的表示与运算
一机器数与真值
我们把一个数在机器(计算机)中的表示形式称为机器数,而把原来实际数本身值叫真值。
机器数有如下特点:
1.机器数的正负号已经数值化了,这是它的第一个特点。
2.机器数所能表示数的范围受到机器(计算机)字长的限制。
3.小数点不能直接标出,需要按一定方式约定小数点的位置。
字长(Word Length): 指字的二进制的位数。
8位微处理器的字长为8位,每个字由一个字节构成;而在16位微处理器中,每个字由2个字节构成。
由于字长是计算机一次所能处理的实际位数的长度,所以字长是衡量计算机性能的一个重要标志。
字长越长,性能越强,精度越高。
常用字常有8位、16位、32位和64位。
二. 符号数的表示方法——原码、反码和补码
既然一个数的数值和符号全都是数码,那么当对这种机器数进行运算时,符号位怎样处理?能不能也同数值位一道参加运算呢?为妥善解决这些问题,引出了机器数 X的三种不同的编码形式,即原码、反码和补码。
分别记作:[x]原、[x]反和[x]补。
1.原码
一个数的原码,就是数值部分不变,仅仅用0和1分别来表示数的符号“+”和“-”的机器数。
例 x
1= 67=+1000011B [x
1
]
原
=01000011
x
2=-67=-1000011B [x
2
]
原
=11000011
原码表示简单易懂,而且与真值的转换方便。
但原码表示的数不便于计算机运算,因为在两个原码数运算时,首先要判断它们的符号,然后再决定用加法还是用减法。
致使机器的结构相应的复杂化或增加机器的运算时间。
为解决上述弊病,引入反码和补码表示法
2.反码
对于正数,反码与原码相同,符号位为0,其余位为数值位本身;对于负数,反码的符号位为1,其余位为数值位按位取反(即将1变为0,0变为1)。
例: x
1=83=+1010011 [x
1
]
反
=01010011
x
2=-83=-1010011 [x
2
]
反
=10101100
3. 补码
对于正数:[X]补=[X]反=[X]原
对于负数:补码的符号位为1,其余为原数值位按位取反加1,还可以用更简便的方法求得负数X的补码;符号位为1,将原数值最右边一个1及其后的0保持不变,而最右边这个1以左的各位均取反即可。
例 x
1=-0011000B x
2
=-1000000B
[x
1]
补
=11101000 [x
2
]
补
=11000000
若已知一个负数的补码,再取一次补,则
{[x]
补 }
补
=[x]
原
下面我们将部分十进制数及其对应的二进制数原码,反码和补码表示归纳如表1-1,其中原码,反码和补码采用8位二进制数代码表示。
4. 补码的运算
可以证明: [X+Y]补=[X]补+[Y]补
[X-Y]补=[X]补+[-Y]补
因此在采用补码形式运算的机器中,就可以将减法运算转化为加法运算了。
补码运算的优点是,它是符号位与数值位一起参加运算,并能自动获得正确结果。
例:
15-20=[15]补+[-20]补
0000 1111 [15]补
+ 1110 1100 [-20]补
1111 1011 [-5]补
注意: 补码运算后所的结果也是补码表示,因此它的实际值要变成原码来看.
因此上例的结果: [-5]原=[[-5]补]补=1000 0101
所以得出 15-20=-5的结果
还要注意: 8位计算机中,由于最高位为符号位,剩下的数值位只有7位,因此表示数范围是 -128 ~ +127。
当两个正数相加其和大于127或两个负数相减其绝对值之和大于128,就是“溢出”,致使结果出错。
推广到字长n位符号
数,最高位为符号位,n-1位表示数值。
能表示的最大值为2n-1-1(即n-1个1)。
当运算结果超过此值,就产生“溢出”。
1.2.4 计算机中常用的编码
一、二进制编码的十进制数(BCD码Binary Coded Decimal)
用4位二进制代码来表示1位十进制数,
BCD码与十进制数之间的转换
从表1-2可见,这种BCD 码与十进制数对应的关系直观,转换也十分简单和直截了当,只需将十进制数的各位数字用与其对应的一组4位二进制数代替即可。
例1:将十进制数83.6转换成BCD码。
8 3. 6
↑↑↑
1000 0011.0110
故(83.6)10 =(1000 0011.0110)BCD
例2: 将BCD码1001 0111.0100 0010转换成十进制数。
1001 0111. 0100 0010
↓↓↓↓
9 7 . 4 2
故(1001 0111.0100 0010)BCD=(97.42)10
BCD码在计算机有两种表示方法:
压缩BCD码:这种方法用一个字节即可表示2位十进制数,
如(56)10=(01010110)BCD。
非压缩 BCD码:它用一个字节表示1位十进制数,其中高4位总是0000,
如(56)10=(0000010100000110)BCD。
前者,占内存少,利用率高;后一种方法在某些场合下使用。
二ASCⅡ码
目前国际上使用的字母、数字、和符号的信息编码系统种类很多。
经常采用的是美国国家信息交换标准代码ASCⅡ(A merican S tandard C ode for I nformation I nterchange)。
该标准制定于1963年,后来经国际标准化组织ISO 和国际电报电话咨询委员会CCITT以它为基础制定了相应的国际标准。
目前微型计算机的字符编码都采用ASCⅡ码。
ASCⅡ码是一种8位代码,一般最高位可用于奇偶校验,故仅用7位码来代表字符信息,共可表示128个字符,其中32个起控制作用的称为“功能码”,其余96个符号(10个十进制数码、52个英文大、小写字母和34个专用符号——$、+、-、=等)共书写程序和描述命令之用,称为“信息码”,如表1-3所示
三汉字编码
我国于1981年公布“国家标准信息交换用汉字编码基本字符集(GB2312-80)”。
该标准规定一个汉字用两个字节(256×256=65536种状态)编码,同时用每个字节的最高位来区分是汉字编码还是ASCⅡ字符码,这样每个字节只用低7位,这就是所谓双7位汉字编码(128×128=16384种状态),称作该汉字的交换码(又称国标码)。
注意,对一给定数据的不同约定表示不同的意义。
例:二进制数: 0011 1001B
十六进制表示为: 3 9H
化为十进制数为: 57
看成BCD码: 39 (压缩BCD码代表十进制39)
ASCⅡ码表示: 9
还可以表示成地址,指令等其它信息,这点要注意,在不同场合下,分清它们所表示的意义。