190 likes | 321 Views
1.4 微型计算机中数的编码和字符的表示. 1.4.1 带 符号数的表示方法 1.4.2 定点数与浮点数 1.4.3 计算机中的编码. 1.4.1 带符号数的表示方法. 二进制数、不同数制造之间的互化. 无符号数与带符号数. 由于计算机只能识别 0 和 1 组成的数或代码,所以有符号数的符号也只能用 0 和 1 来表示,一般用 0 表示正,用 1 表示负。 由于数值部分的表示方法不同,有符号数可有三种表示方法,分别叫做 原码、反码和补码 。. 原码表示的有符号数: 最高位为符号位,数值位部分就是该数的绝对值。
E N D
1.4 微型计算机中数的编码和字符的表示 • 1.4.1带符号数的表示方法 • 1.4.2 定点数与浮点数 • 1.4.3 计算机中的编码
1.4.1 带符号数的表示方法 二进制数、不同数制造之间的互化 无符号数与带符号数 • 由于计算机只能识别0和1组成的数或代码,所以有符号数的符号也只能用0和1来表示,一般用0表示正,用1表示负。 • 由于数值部分的表示方法不同,有符号数可有三种表示方法,分别叫做原码、反码和补码。
原码表示的有符号数: • 最高位为符号位,数值位部分就是该数的绝对值。 • 例如:假设某机器为8位机,即一个数据用8位(二进制)来表示,则: • +23的原码为 • 00010111 • -23的原码为 • 10010111 • 其中最高位是符号位,后7位是数值位。 真值 机器数 问题:无符号数与带符号数的区别? 机器数 真值 原码表示的数字范围: -127 — +127
反码表示的有符号数: • 把最高位规定为符号位,数值部分对于正数是其绝对值,而对于负数则是其绝对值按位取反(即1变0,0变1)得到的。 • 例如:+23的反码为 • 00010111 • -23的反码为 • 11101000 • 反码表示的数字范围同原码。 • 数字‘0’有2个编码表示: • (+0)反=00000000 (- 0)反=11111111
补码表示的有符号数: • 正数的补码表示与原码、反码相同,负数的补码则是原码的数值位按位取反再在后末位加1形成。 • 例如: +23的补码为 00010111 • -23的补码为 11101001 原码表示的数字范围: -128 — +127
例1:求的原码、反码和补码。 解: (-97)原 = 1 1100001 (-97)反 = 1 0011110 (-97)补 = 1 0011111
例2:已知(X)补=11101110B,求的原码和真值。 解:X为一负数,原码为数值部分求反加1 (X)原 = 1 0010010 真值 X = - 18
补码运算: [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 = 0 0000100 真值= 4
溢出与进位: 当运算结果超出数的表示范围时将产生溢出。 例 设字长为8位,用补码进行计算(+120)+(+30) 01111000 ………+120 00011110 ………+30 +________________________ 10010110 错误 …… -106
又例 设字长为8位,计算 -5-16=(-5)+(-16) 11111011 ………-5 11110000 ………-16 +________________________ 1 11101011 ……… -21 丢失 进位
1.4.2 定点数与浮点数 • 1.定点表示法 • 2.浮点表示法
1.定点表示法 • 所谓定点表示法,是指计算机中小数点位置是固定不变的。 • 根据小数点位置的固定方法不同,又可分为定点整数和定点小数表示法。前者小数点固定在数的最低位之后,后者小数点固定在数的最高位之前。设计算机的字长是8位,则上述两种表示法的格式如下:
2.浮点表示法 • 所谓浮点表示法,是指计算机中的小数点位置不是固定的,或者说是“浮动”的。为了说明它是怎样浮动的我们引入“阶码表示法”。对于任何一个二进制数N都可表示为: • N=2±b×(±k) 阶码 尾数 浮点数的表示形式: X XX…XX X XX…XX 阶符 阶码 尾符(数符) 尾码 例:-23x13 浮点表示形式: 0 11 1 1101 阶符 阶码 尾符 尾码
1.十进制数的编码—BCD码 • 计算机中采用二进制,但二进制书写冗长,阅读不便,所以在输入输出时人们仍习惯使用十进制。如果计算量不大,可采用二进制数对每一位十进制数字进行编码的方法来表示一个十进制数,这种数叫做BCD码。由于在机内采用BCD码进行运算绕过了二进制、十进制间的复杂转化环节,从而节省了机器时间。 • BCD码有多种形式,最常用的是8421BCD码,它是用4位二进制数对十进制数的每一位进行编码,这4位二进制码的值就是被编码的一位十进制数的值。
2.字符的编码 • 在计算机中除了数值之外,还有一类非常重要的数据,那就是字符,如英文的大小写字母(A,B,C,…,a,b,c,…),数字符号(0,1,2,…,9)以及其他常用符号(如:?、=、%、+等)。在计算机中,这些符号都是用二进制编码的形式表示。 • 目前,一般都是采用美国标准信息交换码,它使用七位二进制编码来表示一个符号,通常把它称为ASCII码。由于用七位码来表示一个符号,故该编码方案中共有128个符号(27=128)。
3.汉字的编码 • 计算机要处理汉字信息,就必须首先解决汉字的表示问题。同英文字符一样,汉字的表示也只能采用二进制编码形式,目前使用比较普遍的是我国制定的汉字编码标准GB2312-80,该标准共包含一、二级汉字6763个,其他符号682个,每个符号都是用14位(两个7位)二进制数进行编码,通常叫做国标码。 • 如“啊”的国标码为1110000,1100001。新的国标汉字库已包括两万多个汉字和字符。
1.4.3 计算机中的编码 • 1.十进制数的编码—BCD码 • 2.字符的编码 • 3.汉字的编码 • 4. 基本数据类型
7 0 15 8 7 0 高字节 低字节 31 16 15 0 高字 低字 63 32 31 0 高双字 低双字 127 64 63 0 高四字 低四字 4. 基本数据类型 字 双字 字节 四字 双四字