微型计算机中数的编码与字符的表示
合集下载
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
3.汉字的编码
计算机要处理汉字信息,就必须首先解决汉字的 表示问题。同英文字符一样,汉字的表示也只能采 用二进制编码形式,目前使用比较普遍的是我国制 定的汉字编码标准GB2312-80,该标准共包含一、 二级汉字6763个,其他符号682个,每个符号都是 用14位(两个7位)二进制数进行编码,通常叫做国 标码。
所以在二\ 十六之间互相转换时,原则为: 二 到 十六, 以小数点为分界线,向左每4位一个组合转
换成一位十六进制数,不够的左边补0,而右边每4位 一个组合转换成16进制,不够的右边补0。 11011•101 0001 1011 1010
1 B ·A
1 数的表示与转换方法
十六 到 二 将每个十六进制位转为4位二进制数即可。
* 十六进制数 可认为是对二进制数的简化表现形式,它与二进制数有 明显的对应关系。 包含0、1…9、A、B、C、D、E、F 16个符号,逢十六 进一
1 数的表示与转换方法
(2) 不同进位位数值的转换 二\ 十六制 由于一个十六进制位正好由4位二进制数字构成: 0000 0001 0010…1001 1010 1011… 1110 1111 0 12 9AB E F 0 1 2 9 10 11 14 15
2.字符的编码
在计算机中除了数值之外,还有一类非常重要 的数据,那就是字符,如英文的大小写字母(A,B, C,…,a,b,c,…),数字符号(0,1,2,…, 9)以及其他常用符号(如:?、=、%、+等)。 在计算机中,这些符号都是用二进制编码的形式表 示。
目前,一般都是采用美国标准信息交换码,它使 用七位二进制编码来表示一个符号,通常把它称为 ASCII码。由于用七位码来表示一个符号,故该编码 方案中共有128个符号(27=128)。
1.十进制数的编码—BCD码
BCD码有多种形式,最常用的是8421BCD码,它是 用4位二进制数对十进制数的每一位进行编码,这4位二 进制码的值就是被编码的一位十进制数的值。 组合BCD码或压缩BCD码:35D:0011 0101BCD 非组合BCD码:35D:00000011 00000101 非法码: 1010 1011 1100 1101 1110 1111
最高位为符号位,数值位部分就是该数的绝对值。 例如:假设某机器为8位机,即一个数据用8位(二进制) 来表示,则: +23的原码为
00010111 -23的原码为
10010111 其中最高位是符号位,后7位是数值位。
原码表示的数字范围: -127 — +127
+0原码:0 0000000 -0原码:1 0000000
(+0)反=00000000 (-0)反=11111111
2 带符号数的表示方法
无符号数与带符号数
补码表示的有符号数
正数的补码表示与原码、反码相同,负数的补码则是 其绝对值的二进制值按位取反再在后末位加1形成。0的 补码为00000000 例如: +23的补码为 00010111
-23的补码为 11101001 补码表示的数字范围: -128 — +127
1.定点表示法
所谓定点表示法,是指计算机中小数点位置是固定不 变的。
根据小数点位置的固定方法不同,又可分为定点整数 和定点小数表示法。前者小数点固定在数的最低位之后, 后者小数点固定在数的最高位之前。设计算机的字长是 8位,则上述两种表示法的格式如下:
2.浮点表示法
所谓浮点表示法,是指计算机中的小数点位置不是
二 、十六 到 十 各位按权相加
1 数的表示与转换方法
十 到 二、十六
整数部分转换(除2取余)
例 30D转换为二进制
即 30=11110B
低位
2 3 0 余0
2 1 5 余1
2 7 余1
2 3 余1
1 余1
11110
1 数的表示与转换方法
十 到 二、十六 小数部分转换(乘2取整) 0.625D=0.101B 0.5 0.25 0.125 0.0625 0.03125
讨论:浮点数的存储精度问题
2 带符号数的表示方法
无符号数与带符号数
由于计算机只能识别0和1组成的数或代码,所以有符 号数的符号也只能用0和1来表示,一般用0表示正,用1 表示负。
由于数值部分的表示方法不同,有符号数可有三种表 示方法,分别叫做原码、反码和补码。
2 带符号数的表示方法
无符号数与带符号数 原码表示的有符号数
+________________________ 1 11101011 ……… -21
丢失 进位
关于负数原码、反码、补码问题的讨论
话题:已知负数的补码,求真值:
一方面,负数求补码由原负数真值的绝对值求反加1得 到,那么由补码反求负数真值应该是补码减1再求反得 到 另一方面,由补码反求负数真值,其绝对值一般仍采 用其补码求反加1得到。
高字节
低字节
31
16 15
0
高字
低字
四字
63
32 31
0
高双字
低双字
双四字 127
64 63
0
高四字
低四字
本节要求
二进制、十进制、十六进制数之间的转换 BCD码的表示方法 记住一些常用的ASCII码 原码、反码、补码的真值计算
2 带符号数的表示方法
无符号数与带符号数
反码表示的有符号数
把最高位规定为符号位,数值部分对于正数是其绝对值, 而对于负数则是其绝对值按位取反(即1变0,0变1)得到 的。 例如:+23的反码为 00010111
-23的反码为 11101000 反码表示的数字范围同原码。 数字‘0’ 有2个编码表示:
1.十进制数的编码—BCD码 2.字符的编码 3.汉字的编码 4. 基本数据类型
1.十进制数的编码—BCD码
计算机中采用二进制,但二进制书写冗长,阅读不 便,所以在输入输出时人们仍习惯使用十进制。如果计 算量不大,可采用二进制数对每一位十进制数字进行编 码的方法来表示一个十进制数,这种数叫做BCD码。由 于在机内采用BCD码进行运算绕过了二进制、十进制间 的复杂转化环节,从而节省了机器时间。
固定的,或者说是“浮动”的。为了说明它是怎样浮动
的我们引入“阶码表示法”。对于任何一个二进制数NΒιβλιοθήκη 都可表示为: 阶码尾数
N=2±b×(±k)
浮点数的表示形式:
X XX…XX
X
XX…XX
阶符 阶码 尾符(数符) 尾码
例: -23x13
阶符 阶码 尾符 尾码
浮点表示形式: 0 11 1 1101
IEEE 754标 准
负数补码最高位一定为1
例1:求-97的原码、反码和补码。 解: -97
原码为 1 1100001 -97
反码为 1 0011110 -97
补码为 1 0011111
例2:已知(X)补=11101110B,求其原码和真值。 解:X为一负数,原码为数值部分求反加1
(X)原 = 1 0010010 真值 X = - 18
对float,共32位,m=8, n=23 若E=0,且M=0,则N为0。
若E=0,且M≠0,则N (1)s * 2126 * 0 M
若1≤E≤254,则 N (1)s * 2(E127) *1 M
若E=255,且M≠0,则N=NaN(‘非数值’)。
若E=255,且M=0,则N (1)s *
如“啊”的国标码为00110000,00100001。新 的国标汉字库已包括两万多个汉字和字符。
为了与ASCII码区分,汉字在计算机中用机内码存储, 在国 标 码基 础 上 ,加8080H得 到 “啊 ” 的机 内码 10110000 10100001
4. 基本数据类型
字节 字 双字
7
0
15
87
0
微型计算机中数的编码和字符的表示
1 数的表示与转换方法 2 带符号数的表示方法 3 定点数与浮点数 4 计算机中的编码
1 数的表示与转换方法
(1) 进位制:数值按不同的进位方法,常分为二进制(B)、 八进制(o)、十进制(D)、十六进制(H)。
* 二进制:计算机中使用的计数制,只有0、1两个符号, 逢2进1。 1100.101B=12.625D
补码运算:
[X]补+[Y]补=[X+Y]补 [X]补-[Y]补 =[X-Y]补=[X]补+[-Y]补
例3:用补码表示形式计算11-7=?
解: 11-7=4= 11+(-7)
(11)补= 0 0001011
(-7)补= 1 1111001
(11)补-(7)补= (11)补 +(- 7)补= 1 0 0000100
例子
转换31.2为float.首先要写成 N (1)s * 2(E127) *1 M 31.2=16*1.95 S=0,E=127+4=131 将0.95转为二进制 0.1111 0011 0011 0011 001… 结果为0 10000011 1111001100110011001
4 计算机中的编码
二者矛盾吗?
结论
二者完全一致,例如:求补码10000000与11111111的真值 首先,最高位为1,它是一个负数 下面求其绝对值: (1)10000000->01111111(减1)->10000000(求反)->128
11111111->11111110(减1)->00000001(求反)->1 (2)10000000->01111111(求反)->10000000(加1)->128
=0 0000100
真值= 4
溢出与进位:
当运算结果超出数的表示范围时将产生溢出。 例 设字长为8位,用补码进行计算(+120)+(+30)
01111000 ………+120 00011110 ………+30 +________________________
10010110
-106 错误
又例 设字长为8位,计算 -5-16=(-5)+(-16) 11111011 ………-5 11110000 ………-16
11111111->00000000(求反)->00000001(加1)->1 原因:减1后求反与求反后再加1是等价的:
设A为表示补码的绝对值值部分 A求反+1=(255-A)+1=256-A A-1求反=255-(A-1)=256-A 二者结果相同
3 定点数与浮点数
1.定点表示法 2.浮点表示法