微机运算入门基础.docx
《微机运算入门基础.docx》由会员分享,可在线阅读,更多相关《微机运算入门基础.docx(14页珍藏版)》请在冰豆网上搜索。
微机运算入门基础
第二章微机运算基础
2.1进位计数制
数符:
不同的进制,如N进制就有N个不同的数符。
权:
数符在不同的位置上代表不同的值。
称为‘权’。
基:
相邻两位数符的权的比值称为‘基’。
例如:
二进制:
有0,1两个数符
各位的权分别是2n-1,2n-2,……,22,21,20,2-1,2-2,…,2-m
相邻两位数符的权的比值是2,因此基=2。
十进制:
有0,1,2,3,4,5,6,7,8,9十个数符
各位的权分别是10n-1,10n-2,…,102,101,100,10-1,10-2,…,10-m
相邻两位数符的权的比值是10,因此基=10。
十六进制:
有0,1,2,3,4,5,6,7,8,9,A,B,C,D,E,F16个数符
各位的权分别是16n-1,16n-2,…,162,161,160,16-1,16-2,…,16-m
相邻两位数符的权的比值是16,因此基=16
各种进制数据的表示:
-在数据的后面加后缀。
如:
1011.11B781.35D2FD0.3AH
-以数字开头(以区别字串)。
如:
0ABCH
在计算机运算中经常使用的是二进制和16进制。
2.2不同进制数据之间的转换
●N进制到十进制转换:
按权展开
例如:
1011.11B=11.75D
1x23+0x22+1x21+1x20+1x2-1+1x2-2=11.75
2FD0.2AH=12240.1640625D
2x163+15x162+13x161+0x160+2x16-1+10x16-2=12240.1640625
●十进制转换到N进制:
整数部分:
除N取余小数部分:
乘N取整
例如:
175.625D=10101111.101B
●二进制,十六进制互相转换:
0000080000
例如:
1011101010.011B=2EA.6H1000191001
1011101010.01120010A1010
2EA.630011B1011
40100C1100
例如:
7FD2H=111111*********B50101D1101
7FD260110E1110
011111111101001070111F1111
2.3二进制编码
●BCD码(BinaryCodeDecimal)
用四位两进制数表示0-9十个数符
例如:
324.89D=0.10001001)BCD
●ASCII码(AmericanStandardCodeforInformationInterchang)
用7位进制数表示一些常用的数符,字母,符号和一些操作。
MSB000(0)001
(1)010
(2)011(3)100(4)101(5)110(6)111(7)
LSB
0000(0)NULDLESP0@P.p
0001
(1)SOHDC1!
1AQaq
0010
(2)STXDC2“2BRbr
0011(3)ETXDC3#3CScs
0100(4)EOTDC4$4DTdt
0101(5)ENQNAK%5EUeu
0110(6)ACKSYN&6FVfv
0111(7)BELETB‘7GWgw
1000(8)BSCAN(8HXhx
1001(9)HTEM)9IYiy
1010(A)LFSUB*:
JZjz
1011(B)VTESC+;K[k{
1100(C)FFFS,1101(D)CRGS-=M]m}
1110(E)SORS,>Nn_
1111(F)SIUS/?
OoDEL
例如字母‘A’41H
符号‘#’23H
数字‘3’33H
空格‘’20H
操作CR0DHLF0AH
2.4二进制的运算
●算术运算:
-加法:
0+0=01+0=10+1=11+1=0(有进位)1+1+1=0(有进位)
例如:
10100101
+01110111
111111
100011100即:
0A5H+77H=1CH(有进位)
-减法:
0-0=01-0=11-1=00-1=1(有借位)
例如:
111111
01011010
-01110111
11100011即:
5AH-77H=0E3H(有借位)
-乘法:
0x0=01x0=0乘数=0积=0
0x1=01x1=1乘数=1积=被乘数
例如:
1101BX1010B=10000010B
被乘数11011101
乘数1010X1010
部分和00000000
乘数最低位=000001101
部分和00000000
部分和右移一位00001101
乘数次低位=1110110000010
部分和11010
部分和右移一位11010
乘数次高位=00000
部分和011010
部分和右移一位011010
乘数最高位=11101
10000010
-除法:
000111…商
101)100011
101
111
101
101
101
1…余数
●逻辑运算(按位操作)
-与运算:
任何数‘与’上‘0’,结果等于0。
任何数‘与’上‘1’,结果等于原来数。
一般常用于;
1一个数屏蔽掉某些不要的位(清0),其余位保留
例如:
10100101…原来数
与00001111…立即数(高四位=0)
00000101…结果原来数的高四位被屏蔽为0
2判别一个数的某一位等于0还是等于1
例如:
10100101…原来数
与00000001…立即数(最低位=1)
00000001…结果保留了原来数的最低位(其余位=0)
-或运算:
任何数‘或’上‘0’,结果等于原来数。
任何数‘或’上‘1’,结果等于1。
一般常用于:
1把一个数的某些位置1,其余位不变
例如:
10100101…原来数
或00001111…立即数
10101111…结果原来数的低4位置1
2把两个数据的不同位拼起来
例如:
00000101…第一个数的低4位(高4位=0)
或11010000…第二个数的高4位(低4位=0)
11010101…结果把两个数据的不同位拼起来产生新数据
-异或运算:
两数相同结果等于0,两数相反结果等于1
任何数‘异或’上‘0’,结果等于原来数。
任何数‘异或’上‘1’,结果等于原来数的反。
一般常用于:
1把一个数的某些位求反,其余位不变
例如:
10100101…原来数
或00001111…立即数
10101010…结果原来数的低4位变反
2把某个数据寄存器清0
例如:
把寄存器A清0,只要执行XORA,A即可。
-求反运算
-移位运算
算术右移1位,低位移出,高位补0:
结果把一个二进制数除2。
算术左移1位,高位移出,低位补0:
结果把一个二进制数乘2。
逻辑右移1位,低位移出,高位不变:
结果把一个带符号数除2。
逻辑左移1位,高位移出,低位补0:
结果把一个带符号数乘2。
2.5数的定点与浮点表示
●定点表示
小数点位置
符号位N位尾数
-符号位=0正数,符号位=1负数
-N位尾数能表示的最大数:
0.111111111111111(N=15)
N位尾数能表示的最小数:
0.0001(N=15)
-这种表示法能表示的数S的范围:
2-N≤S≤1-2-N
-由于这种表示法能表示的数据范围比较小,实际运算时,一般要乘上一个比例因子。
但运算简单,比较适合实时控制领域中。
●浮点表示
小数点位置
阶符阶码数码尾数
当阶码有m位,尾数有n位时:
-阶码能表示的最大数值是2m-1;
-尾数能表示的最大数值为1-2-n,最小数值是2-n;
-这种表示法能表示的数S的范围:
2—(2m-1)x2-n≤S≤2+(2m-1)x(1-2-n)
-由于这种表示法能表示的数据范围比较大,实际运算时,往往要进行对阶处理,
运算精度较高,因此在数据处理方面使用较多。
2.6带符号数的表示
●机器数和真值
当把二进制数的最高为定义为符号位之后,其余为用来表示数值的大小是,这种
数据表示的方法就可以表示带符号的数。
如:
01011011B表示+91D
11011011B表示-91D
-机器数:
一个数在机器中的一组二进制数表示形式,
真值:
这个数据所表示的值称为该机器数的真值。
●原码
二进数的最高位定义成符号位(0-正数1-负数)
其余位表示该数的实际二进制数值。
如:
+91D原码表示为01010100B
-91D原码表示为11010100B
●反码
二进数的最高位定义成符号位(0-正数1-负数)
当数据为正数时反码表示同原码,当数据是负数时用原码表示的反。
如:
+91D反码表示为01010100B
-91D反码表示为10101011B
●补码
二进数的最高位定义成符号位(0-正数1-负数)
当数据为正数时反码表示同原码,当数据是负数时用反码表示数再加1。
如:
+91D补码表示为01010100B
-91D补码表示为10101100B
●移码
如有N位二进制数,则用移码表示带符号的数S时的定义为:
(2N-1-1)+S
如:
当N=8时,2N-1-1=127;
+91D移码表示为11011010B(127+91=218)
-91D移码表示为00100100B(127+(-91)=24)
四种带符号数据用8位二进制数表示比较
十进制数原码反码补码移码
12811111111
12701111111011111110111111111111110
12601111110011111100111111011111101
……………
200000010000000100000001010000001
100000001000000010000000110000000
000000000000000000000000001111111
-01000000011111111
-110000001111111101111111101111110
-210000010111111011111111001111101
……………
-12611111110100000011000001000000001
-12711111111100000001000000100000000
-12810000000
●IEEE-754浮点数格式标准
S阶有效值
-32位浮点数(单精度浮点数)
S:
表示数符0-正数1-负数
阶:
8位用移码表示的阶(-127~+128)
有效值:
小数点的左边第1位等于’1’(隐含),这里的有效值是小数点右边的其
他23位数据
-64位浮点数(双精度浮点数)
S:
表示数符0-正数1-负数
阶:
11位用移码表示的阶(-1023~+1024)
有效值:
小数点的左边第1位等于’1’(隐含),这里的有效值是小数点右边的其
他52位数据
例1:
单精度实数+12D
12D11001.1x23
指数30000001110000010(8位)
有效值1(23位)
单精度实数+12表示为0100000000
例2:
单精度实数-100
100D11001001.1001x26
指数60000011010000101(8位)
有效值1(23位)
单精度实数-100表示为1100001011