计算机中数据的表示与信息编码
- 格式:doc
- 大小:149.50 KB
- 文档页数:8
第3章信息编码与数据表示• 3.4 浮点机器数表示方法– 3.4.1 浮点数的格式•浮点数的典型格式N=M*RE –阶符,数符。
阶码一般采用移码和补码表示。
尾数一般采用原码和补码表示。
–E :定点整数。
E 决定了浮点数N 的绝对值;E S 不是N 的符号–M :定点小数。
M S 决定了浮点数N 的符号;M S =0,则N 为正数,M S =1,则N 为负数 E 1E 2……E m .阶码数值尾数数值. M 1M 2……M nE S M S 阶符数符IEEE 754 国际标准常用的浮点数格式有3种,阶码的底隐含为2短实数又称为单精度浮点数,长实数又称为双精度浮点数,临时实数主要用于进行浮点数运算,保存临时的计算结果。
单精度浮点数和双精度浮点数的阶码采用移码,但不同的是:它的偏移量不是27和210,而是27-1=127和210-1=1023;尾数使用原码表示,且采用隐藏位,也就是将规格化浮点数尾数的最高位的“1”省略,不予保存,认为它隐藏在尾数小数点的左边。
由此,推导出它们的真值计算公式如上表,其中E为阶码ESE1……Em的加权求和的值。
Ms Es E1…E8M1M2…M23Ms Es E1…E11M1M2…M52IEEE754单精度格式IEEE754双精度格式例 3.10:若X 和Y 均是IEEE 754 标准的单精度浮点数,若X 浮点数的存储形式为41360000H ,求X 的真值。
若Y=-135.625,求Y 的浮点数表示。
解:(1)[X]浮= 0100 0001 0011 0110 0000 0000 0000 0000 B按照表3-3中的真值计算公式及IEEE 754 标准的单精度浮点数格式,可以知道:M S =0 ,E=E S E 1……E m = 10000010 B = 130 D ,1. M 1M 2…… M n = 1.011 0110 0000 0000 0000 0000 ,所以,X =(-1)MS ×(1.M 1M 2…… M n )×2E -127= (-1)0×(1. 011 011)×2130-127;X=(+1011.011)2= (+11.375 )10(2)Y=(-10000111.101)2;Y =-1. 0000111101×27=(-1)1×(1.0000111101)×2134-127;因此:M S =1 ,E=E S E 1……E m = 134 D = 10000110 B ,1.M1 M2…… Mn = 1. 000 0111 1010 0000 0000 0000 ,求出:[Y]浮= 1 10000110 000 0111 1010 0000 0000 0000 B = C307A000 H–3.4.2 规格化定义:采用规格化形式表示浮点数可以提高精度。
数在计算机中的表示方法及编码计算机中的信息不仅有数据,还有字符、命令,其中数据还有大与小、正数与负数之分。
计算机是如何用“0”或“1”,来表示这些信息的呢?1.计算机中数的表示形式在计算机中,只有数码1和0两种不同的状态,对于一个数的正、负号,两种不同状态,约定正数的符号用0表示,负数的符号用1表示,将符号位放在数的最左边。
例如:N1=+1011,N2=-1011。
由于MCS—51为8位单片机,即信息是以8位为单位进行处理的,且每个存贮单元只能存贮—个8位的二进制数,称为一个字节,如果用一个字节(即8位二进制数)来表示上述两个符号数,它们在单片机中可分别表示为:00001011和10001011,其中最高位为符号值,其余位为数值位。
最高位为0表示是正数,最高位为1表示是负数。
这种计算机用来表示数的形式叫机器数。
而把对应于该机器数的算术值叫真值。
值得注意的是:机器数和真值的面向对象不同,机器数面向计算机,真值面向用户,机器数不同于真值。
但真值可以用机器数来表示。
机器数是计算机中表示数的基本方法,机器数通常有原码、反码和补码三种形式。
(1)原码表示方法用8位二进制数表示数的原码时,最高位为数的符号位,其余7位为数值位。
例如:真值为+120和-120的原码形式[+120]原=01111000[-120]原=11111000对于零,可以认为它是正零,也可以认为它是负零,所以零的原码有两种表示形式:[+0]原=00000000[-0]原=100000008位二进制数原码表示范围为:11111111~01111111,即-127~+127。
(2)反码表示方法在反码表示方法中,正数的反码与原码相同,负数的反码由它对应原码除符号位之外,其余各位按位取反得到。
例如:[+120]反=[+120]原=01111000[-120]反=10000111零的反码有两种表示方式,即:[+0]反=00000000[-0]反=111111118位二进制数反码表示范围为:11111111~01111111,即-127~+127。
计算机中数据的表示与信息编码计算机最主要的功能是处理信息,如处理文字、声音、图形和图像等信息。
在计算机内部,各种信息都必须经过数字化编码后才能被传送、存储和处理。
因此要了解计算机工作的原理,还必须了解计算机中信息的表现形式。
1.2.1 计算机使用的数制1.计算机内部是一个二进制数字世界计算机内部采用二进制来保存数据和信息.无论是指令还是数据,若想存入计算机中,都必须采用二进制数编码形式,即使是图形、图像、声音等信息,也必须转换成二进制,才能存入计算机中。
为什么在计算机中必须使用二进制数,而不使用人们习惯的十进制数?原因在于:⑴易于物理实现:因为具有两种稳定状态的物理器件很多,例如,电路的导通与截止、电压的高与低、磁性材料的正向极化与反向极化等。
它们恰好对应表示1和0两个符号。
⑵机器可靠性高:由于电压的高低、电流的有无等都是一种跃变,两种状态分明,所以0和1两个数的传输和处理抗干扰性强,不易出错,鉴别信息的可靠性好。
⑶运算规则简单:二进制数的运算法则比较简单,例如,二进制数的四则运算法则分别只有三条。
由于二进制数运算法则少,使计算机运算器的硬件结构大大简化,控制也就简单多了。
虽然在计算机内部都使用二进制数来表示各种信息,但计算机仍采用人们熟悉和便于阅读的形式与外部联系,如十进制、八进制、十六进制数据,文字和图形信息等,由计算机系统将各种形式的信息转化为二进制的形式并储存在计算机的内部.2.进位计数制数制,也称计数制,是指用一组固定的符号和统一的规则来表示数值的方法。
数制可分为非进位计数制和进位计数制两种.非进位计数制的数码表示的数值大小与它在数中的位置无关;而进位计数制的数码所表示的数值大小则与它在数中所处的位置有关。
而我们在这里讨论的数制指的都是进位计数制。
进制是进位计数制的简称,是目前世界上使用最广泛的一种计数方法,它有基数和位权两个要素.➢➢基数:在采用进位计数制的系统中,如果只用r个基本符号(例如0,1,2,…,r—1)表示数值,则称其为r数制(Radix—r Number System),r称为该数制的基数(Radix).如日常生活中常用的十进制,就是r=10,即基本符号为0,1,2,…,9。
第二章计算机中数据的表示方法第一节计算机中数据的分类和表示方法计算机内部传送的信息分为两大类:控制信息和数据信息。
数据信息又分为两种,数值型数据和非数值型数据。
注意:任何数据在计算机中都是用二进制表示的。
一、数据的单位1.位(bit):是计算机中最小的数据单位,常用小写字母b来表示。
2.字节(Byte):用大字母B来表示,1B=8b表示文件的长度,衡量存储器的容量,存储器编址用字节做单位。
磁盘的存储单位是:簇磁盘存放信息的最小编址单位是:扇区信息编码的的最小单位是:码元3.字(word):由若干字节组成,是字节的整数倍。
在计算机内部进行数据传送,或CPU进行数据处理时,用它作基本单位。
字的长度即字长,并不是所有的计算机字长都一样,常见的字长有16位,32位,64位。
字长是CPU一次能够处理二进制的位数。
字长越长,计算机速度越快,精度越高。
4.常用的存储单位之间的换算1TB=1024GB 1GB=1024MB 1MB=1024KB 1KB=1024B 210 1B=8b二、数据的分类1.按数据处理方式分类数值型和非数值型非数值型又分为:字符数据和逻辑数据2.按数据传输形式分类数字数据和模拟数据数字数据:离散型的;模拟数据:连续的值模拟数据被数字化后存入计算机,采用模数转化将模拟数据数字化后存入计算机。
三、数据的表示方法1.数值型数据的表示(1)按小数点的处理可分为定点数和浮点数。
(2)按符号位有原码、补码,反码三种形式的机器数2.非数值型数据的表示第二节各种数制及其转换方法一、数制的组成数制是指计数的方法,任何一种数制都有两个要素:基数和权。
例如二进制数1001.01,它的基数是2,最左边1的权是23,最右边的1的权是2-2。
234二、常用字的数制二进制(B),八进制(Q),十进制(D),十六进制(H)三、不同进制之间的转换1.十进制转换成非十进制分成整数部分和小数部分:整数部分:除基数倒取余小数部分:乘基数取整注意:十进制数转换在二进制数的方法是除2倒取余。
计算机中信息的编码计算机中的信息编码是指将各种类型的数据转化为计算机可以处理和存储的二进制形式。
通过对信息进行编码,计算机可以在数据传输、存储和处理过程中,准确地表示和解释各种不同类型的信息。
本文将就计算机中信息的编码进行详细探讨。
一、信息编码的基本原理信息编码是将不同类型的信息转化为二进制形式的过程。
在计算机中,信息可以分为数字、文本、图像和音频等不同类型。
为了能够准确地表示这些信息,计算机使用不同的编码方式。
1. 数字编码数字编码是将数字信息转化为计算机可以处理的二进制形式。
最常用的数字编码方式是十进制和二进制编码。
十进制编码即使用十个数字0-9来表示数字信息,而二进制编码使用0和1来表示。
在计算机中,一般采用二进制编码来表示数字信息。
2. 文本编码文本编码是将字符信息转化为计算机可以理解的形式。
最常用的文本编码方式是ASCII码和Unicode码。
ASCII码采用7位二进制来表示128个不同的字符,其中包括大写和小写字母、数字、标点符号等。
Unicode码则采用16位二进制来表示字符,能够涵盖全球各种语言和符号。
3. 图像编码图像编码是将图像信息转化为计算机可以存储和显示的形式。
常见的图像编码方式包括位图和矢量图。
位图是将图像划分为像素点,并将每个像素点的颜色信息转化为二进制码。
矢量图则是通过记录图像中各个元素的坐标、颜色和形状等信息来表示图像。
4. 音频编码音频编码是将声音信息转化为计算机可以处理的形式。
常见的音频编码方式包括PCM编码和MP3编码。
PCM编码是将声音波形转化为数字信号的过程,采用脉冲编码调制方式,可保持声音的原始质量。
而MP3编码则是一种有损压缩方式,通过去除无关的声音信号来减小文件大小。
二、信息编码的应用领域信息编码在计算机科学和通信领域有着广泛的应用。
以下是几个常见的应用领域:1. 网络通信在网络通信中,信息编码起到了至关重要的作用。
通过对信息进行编码和解码,可以在不同设备之间准确地传递和解释数据。
计算机中数据的表示与信息编码计算机最主要的功能是处理信息,如处理文字、声音、图形和图像等信息。
在计算机内部,各种信息都必须经过数字化编码后才能被传送、存储和处理。
因此要了解计算机工作的原理,还必须了解计算机中信息的表现形式。
1.2.1 计算机使用的数制1.计算机内部是一个二进制数字世界计算机内部采用二进制来保存数据和信息。
无论是指令还是数据,若想存入计算机中,都必须采用二进制数编码形式,即使是图形、图像、声音等信息,也必须转换成二进制,才能存入计算机中。
为什么在计算机中必须使用二进制数,而不使用人们习惯的十进制数?原因在于:⑴易于物理实现:因为具有两种稳定状态的物理器件很多,例如,电路的导通与截止、电压的高与低、磁性材料的正向极化与反向极化等。
它们恰好对应表示1和0两个符号。
⑵机器可靠性高:由于电压的高低、电流的有无等都是一种跃变,两种状态分明,所以0和1两个数的传输和处理抗干扰性强,不易出错,鉴别信息的可靠性好。
⑶运算规则简单:二进制数的运算法则比较简单,例如,二进制数的四则运算法则分别只有三条。
由于二进制数运算法则少,使计算机运算器的硬件结构大大简化,控制也就简单多了。
虽然在计算机内部都使用二进制数来表示各种信息,但计算机仍采用人们熟悉和便于阅读的形式与外部联系,如十进制、八进制、十六进制数据,文字和图形信息等,由计算机系统将各种形式的信息转化为二进制的形式并储存在计算机的内部。
2.进位计数制数制,也称计数制,是指用一组固定的符号和统一的规则来表示数值的方法。
数制可分为非进位计数制和进位计数制两种。
非进位计数制的数码表示的数值大小与它在数中的位置无关;而进位计数制的数码所表示的数值大小则与它在数中所处的位置有关。
而我们在这里讨论的数制指的都是进位计数制。
进制是进位计数制的简称,是目前世界上使用最广泛的一种计数方法,它有基数和位权两个要素。
➢➢基数:在采用进位计数制的系统中,如果只用r个基本符号(例如0,1,2,…,r-1)表示数值,则称其为r数制(Radix-r Number System),r称为该数制的基数(Radix)。
如日常生活中常用的十进制,就是r=10,即基本符号为0,1,2,…,9。
如取r=2,即基本符号为0和1,则为二进制数。
➢➢位权:每个数字符号在固定位置上的计数单位称为位权。
位权实际就是处在某一位上的1所表示的数值大小。
如在十位制中,个位的位权是100,十位的位权是101,…;向右依次是10-1,10-2,…。
而二进制整数右数第2位的位权为2,第3位的位权为4,第4位的位权为8。
一般情况下,对于r进制数,整数部分右数第i位的位权为r i-1,而小数部分左数第i位的位权为r-i。
各种进制的共同点是:⑴每一种数制都有固定的符号集。
如十进制数制,其符号有十个:0,1,2, (9)二进制数制,其符号只有两个:0和1。
需要指出的是,16进制数基数为16,所以有16个基本符号,分别为0,1,2,…,8,9,A,B,C,D,E,F。
表1-3列出了计算机中常用的几种进制。
⑵采用位置表示法,用位权来计数。
即处于不同位置的数符所代表的值不同,与它所在位置的权值有关。
例如:十进制的1358.74可表示为:1358.74=1×103+3×102+5×101+8×100+7×10-1+4×10-2可以看出,各种进位制中的位权的值恰好是基数的某次幂。
因此,对于任何一个进位计数制表示的数都可以写出按其权值展开的各项式之和,称为“按权展开式”。
任意一个n位整数和m位小数的r进制数D可表示为:D0. D 1 ∑--=⨯=mn i iir D1⑶ 按基数来进位和借位(逢r 进一,借一当r )。
现列举二进制的算术运算如下:从这里我们能够体会到二进制的运算的确能够起到简化硬件的作用.加法:0+0=0 减法: 0-0=0 0+1=1 0-1=1(借位) 1+0=1 1-0=1 1+1=10(进位) 1-1=0乘法:0×0 =0 除法: 0 ÷1=0 0×1 =0 1÷1=11×0 =0 1×1 =11.2.2 数制间的相互转换1.非十进制数转换十进制数r 进制转换为十进制数,采用r 进制数的位权展开法,即将r 进制数按“位权”展开形成多项式并求和,得到的结果就是转换结果。
【例1.1】 【例1.1】 把 (11011.101)2转换成十进制数解:(11011.101)2 = 1524 + 1523 + 0522 + 1521 + 1520 + 152-1 + 052-2 + 152-3= 16 + 8 + 0 + 2 + 1 + 0.5 + 0 +0.125= (27.625)10 2.十进制数转换非十进制数转换规则:整数部分采用“逐次除以基数取余”法,直到商为0;小数部分采用“逐次乘以基数取整”法,直到小数部分为0或取到有效数位。
⑴ 十进制数转换成二进制数: 整数部分采用“除2取余”法;小数部分采用“乘2取整”法 【例1.2】把 (157.6875)10转换成二进制数(0.10 210 2⑵用同样的方法,可将十进制数转换成八进制数和十六进制数,分别采用“除8取余,乘8取整”和“除16取余,乘16取整”法。
3. 非十进制数之间的转换通常两个非十进制数之间的转换方法是采用上述两种方法的组合,即先将被转换数转换为相应的十进制数,然后再将十进制数转换为其他进制数。
由于二进制、八进制和十六进制之间存在着特殊关系,即81=23,161=24,因此转换方法就比较容易,如表1-4所示。
⑴二进制、八进制数之间的转换。
由于1位八进制数相当于3位二进制数,因此,二进制数转换成八进制数,只需以小数点为界,整数部分按照由右至左(由低位向高位)、小数部分按照从左至右(由高位向低位)的顺序每三位划分为一组,最后不足3位二进制数时用零补足。
按表1-4,每三位二进制数分别用与其对应的八进制数码来取代,即可完成转换。
而将八进制转换成二进制的过程正好相反。
【例1.3】将(11001110.01010111)2 转换成八进制数。
(011001110.010101110)2↓↓↓↓↓↓(316.2 5 6)8【例1.4】将(574.623)8 转换成二进制数。
(574.623)8↓↓↓↓↓↓(101111100.110010011)2⑵二进制、十六进制数之间的转换由于十六进制的1位数相当于二进制的4位数,因此二进制同十六进制之间的转换就如同二进制同八进制之间的转换一样,只是4位一组,不足补零。
【例1.5】将(11011 1110 0011 . 1001 011)2 转换成十六进制数。
(0001101111100011.10010110)2↓↓↓↓↓↓(1BE3.96)16且目前大部分微型机的字长是4位、8位、16位、32位和64位的,都是4的整数倍,故在书写时可用十六进制表示。
一个字节(8位)可用两位十六位进制数表示,两个字节(16位)可用4位十六进制表示等,书写方便且不容易出错。
1.2.3 二进制数在计算机内的表示计算机中的数据包括数值型和非数值型两大类。
数值型数据指可以参加算术运算的数据,例如(123)10、(1001.101)2等。
非数值型数据不参与算术运算。
例如字符串“电话号码:2519603”、“4的3倍等于12”等都是非数值数据。
注意这两个例子中均含有数字,如2519603、4、3、12 ,但它们不能也不需要参加算术运算,故仍属非数值数据。
下面讨论数值型的二进制数的表示形式:1. 机器数在计算机中,因为只有“0”和“1”两种形式,所以数的正负,也必须以“0”和“1”表示。
通常把一个数的最高位定义为符号位,用0表示正,1表示负,称为数符,其余位仍表示数值。
把在机器内存放的正、负号数码化的作为一个整体来处理的二进数串称为机器数(或机器字),而把机器外部由正、负表示的数称为真值数。
例:真值为(+1010011) B的机器数为01010011,存放在机器中,等效于+83。
需注意的是,机器数表示的范围受到字长和数据的类型的限制。
字长和数据类型定了,机器数能表示的数值范围也就定了。
例如,若表示一个整数,字长为8位,则最大的正数为01111111,最高位为符号位,即最大值为127。
若数值超出127,就要“溢出”。
2. 数的定点表示和浮点表示当计算机所需处理的数含有小数部分时,又出现了如何表示小数点的问题。
计算机中并不单独利用某一个二进制位来表示小数点,而是隐含规定小数点的位置。
根据小数点位置是否固定,计算机中的数可分为定点数和浮点数两种。
⑴定点表示法:所谓定点表示法就是小数点在数中的位置固定不变,它总是隐含在预定位置上。
通常,对于整型数,小数点固定在数值部分的右端,即在数的最低位之后,其格式如图1-2所示;对于小数,小数点固定在数值部分左端,即在数的符号位之后、最高数位之前,其格式如图1-3所示。
例如:定点整数120用8位二进制数可表示为01111000,其中最高位0表示符号为正。
根据计算机字长不同,如果用n个二进制位存放一个定点整数,那么它的表示范围为:-2n-1~2n-1-1。
说明:上面表示的整数的范围是以补码形式表示的,有关补码的知识在后面介绍。
定点小数-0.125用8位二进制数可表示为10010000,其中最高位1表示号为负。
根据计算机字长不同,如果用n个二进制位存放一个定点小数(纯小数),其表示范围为:-1~(2- (n-1))。
⑵数的浮点表示定点数用来表示整数或纯小数。
如果,一个数既有整数部分,又有小数部分,采用定点格式就会引起一些麻烦和困难。
因此,计算机中使用浮点表示方法。
浮点表示法对应于科学(指数)计数法,如数110.011可表示为N=110.011=1.10011×2+10 =11001.1×2-10 =0.110011×2+11浮点表示法中的小数点在数中的位置不是固定不变的,是浮动的。
任何浮点数都由阶码和尾数两部分组成,阶码是指数,尾数是纯小数。
其存储格式如图1-4所示。
其中,数符和阶符都各占一位,数符是尾数(纯小数)部分的符号位;而阶符为阶码(指数部分)的符号位。
阶码的位数随数值的表示的范围而定,尾数的位数则依数的精度而定。
当一个数的阶码大于机器所能表示的最大阶码或小于机器所能表示的最小阶码时会产生“溢出”。
应当注意的是:浮点数的正负是由尾数的数符确定的,而阶码的正、负只决定小数点的位置,即决定浮点数的绝对值的大小。
当浮点数的尾数为零或阶码为最小值时,机器通常规定,把该数看作零,称为机器零。
3. 带符号数的表示在计算机中,带符号数可以用不同方法表示,常用的有原码、反码和补码。