490 likes | 601 Views
计算机中信息的表示. 计算机所处理的信息都是以二进制形式进行存储和处理的。. 为了进一步学习和加深对计算机工作过程的理解,很有必要了解一些数制的基本概念。. 1 数制. 数制的概念. 用一组固定的数字和一套统一的规则来表示数目的方法叫作数制。. 基数:每个数位可以使用的数码总数称为该进位数的基数。例如二进制数的基数为 2 ,即可以使用 0 和 1 两个数码。. 按权展开式:一个数中每一位的计数单位称为权,例如十进制数 26 ,其十位位数的权是 10 ,个位位数的权是 1 。任何进制的数皆可以按权展开。. 例:一个十进制数 975310
E N D
计算机中信息的表示 计算机所处理的信息都是以二进制形式进行存储和处理的。 为了进一步学习和加深对计算机工作过程的理解,很有必要了解一些数制的基本概念。
1数制 数制的概念 用一组固定的数字和一套统一的规则来表示数目的方法叫作数制。 基数:每个数位可以使用的数码总数称为该进位数的基数。例如二进制数的基数为2,即可以使用0和1两个数码。 按权展开式:一个数中每一位的计数单位称为权,例如十进制数26,其十位位数的权是10,个位位数的权是1。任何进制的数皆可以按权展开。 例:一个十进制数975310 每个数位上所能使用的符号个数:___,基数为:___; 从右到左第5位(即符号为7)这一位的位权:_______;十 进制数的位权以指数形式表达为:_______________________。 10 10 10000 105 + 104 + 103 + 102 + 101 + 100
(5741)8 = ________________________。 + + + 1数制 数制的概念 任何一个N位R进制的数都可以用数字与其位权乘积之和的形式来表达。其公式为: (D1D2 … DN)R = DiRN-i = D1RN-1 + D2RN-2 + … + DN-1R1 + DNR0 另外,运算中还要遵守“逢R进一,借一当R”的进位规则。 例:一个八进制数5741 R = ___,N = ___; 8 4 D1 = ___,D2 = ___,D3 = ___,D4 = ___; 5 7 4 1 583 782 481 180
1数制 数制的分类 在我们日常生活中,十进制是最常见的数制。在计算机内部,可以使用二进制、八进制、十六进制等数制。 十进制、二进制、八进制和十六进制的基数、位权和数码符号如下所示: 10 2 8 16 10n 2n 8n 16n 0~9 0, 1 0~7 0~9, A~F 在计算机领域,不同进制分别用不同的英文符号表示,O表示八进制,H表示十六进制,D表示十进制,B表示二进制。
1数制 数制之间的转换 在介绍数制之间的转换前,先了解常用四种数制之间的对应关系。 0 0 0 0 9 1001 11 9 1 1 1 1 10 1010 12 A 2 10 2 2 11 1011 13 B 3 11 3 3 12 1100 14 C 4 100 4 4 13 1101 15 D 5 101 5 5 14 1110 16 E 6 110 6 6 15 1111 17 F 7 111 7 7 16 10000 20 10 8 1000 10 8
1数制 数制之间的转换 R进制转换为十进制 基数为R的数字,只要将各位数字与它的权相乘,其积相加,和数就是十进制数。 例:将二进制数100.101、八进制数3506.2、十六进制数0.2A转换成十进制数。 (100.101)2 = 1×22 +0×21 +0×20 +1×2-1 +0×2-2 +1×2-3 = (4.625)10 (3506.2)8 = 3×83 +5×82 +0×81 +6×80 +2×8-1 = (1862.25)10 (0.2A)16 = 0×160 +2×16-1 +10×16-2 = (0.1640625)10
1数制 数制之间的转换 R进制转换为十进制 从上面几个例子可以看到:当从R进制转换到十进制时,可以把小数点作为起点,分别向左右两边进行,即对其整数部分和小数部分分别转换。对于二进制来说,只要把数位是1的那些位的权值相加,其和就是等效的十进制数。因此,二——十进制转换是最简便的,同时也是最常用的一种。
1数制 数制之间的转换 十进制转换为R进制 将十进制数转换为基数为R的等效表示时,可将此数分成整数与小数两部分分别转换,然后再拼接起来即可。
D = D1RN-1 + D2RN-2 + … + DN-1R1 + DN 1数制 数制之间的转换 十进制转换为R进制 整数部分: 我们知道,任何一个十进制整数D,都可以用一个R进制数来表示: = (D1RN-2+ D2RN-3 + … + DN-2R1 + DN-1 )R + DN = Q1R + DN 由此可知,若用D除以R,则商是__,余数是__。 Q1 DN 同理: Q1 = Q2R + DN-1 Q1再除以R,则商是__,余数是___。 Q2 DN-1 依此类推: Qi = Qi+1R + DN-i Qi再除以R,则商是___,余数是___。 Qi+1 DN-i 这样除下去,直到商为0时为止,每次除 R的余数DN,DN-1,…,D1即构成R进制数。
1数制 数制之间的转换 十进制转换为R进制 整数部分: 由上面分析得到:十进制整数转换成R进制的整数,可用十进制数连续除以R,其余数即相应R进制数的各位系数。此方法称之除R取余法。
1数制 数制之间的转换 十进制转换为R进制 整数部分: 例:将十进制数22转换成二进制数。 方法:除2取余法。 余数 最低位 2 22 0 2 11 1 2 5 1 2 2 0 2 1 1 最高位 0 所以 (22)10 = (10110)2
1数制 数制之间的转换 十进制转换为R进制 整数部分: 例:将十进制数168转换成八进制数。 方法:除8取余法。 余数 最低位 8 168 0 8 21 5 8 2 2 最高位 0 所以 (168)10 = (250)8
1数制 数制之间的转换 十进制转换为R进制 小数部分: 我们可将某十进制小数用R进制数来表示: V = X-1/R1+ X-2/R2 + X-3/R3 + … + X-M/RM 等式两边乘以R得到: V×R = X-1 + X-2/R1 + X-3/R2 + … + X-M/RM-1 = X-1 + F1 X-1是整数部分,即R进制数小数点后第一位,F1是小数部分。 小数部分再乘以R: F1×R = X-2 + X-3/R1 + … + X-M/RM-2 = X-2 + F2 X-2是整数部分,即R进制数小数点后第二位。 依次乘下去,直到小数部分为0,或达到 所要求的精度为止(小数部分可能永不为0)。
1数制 数制之间的转换 十进制转换为R进制 小数部分: 从前面分析得到:十进制小数转换成R进制数时,可连续地乘以R,得到的整数即组成R进制的数,此法称为“乘R取整”。
1数制 数制之间的转换 十进制转换为R进制 小数部分: 例:将十进制数0.8125转换成二进制数。 方法:乘2取整法。 0.8125 取整 × 2 最高位 1.6250 1 0.6250 × 2 1.2500 1 0.2500 × 2 0.5000 0 0.5000 × 2 1 1.0000 最低位 所以 (0.8125)10 = (0.1101)2
1数制 数制之间的转换 十进制转换为R进制 若将十进制数22.8125转换成二进制数,可分别进行整数部分和小数部分的转换,然后再拼在一起: (22.8125)10 = (10110.1101)2
1数制 数制之间的转换 二进制、八进制、十六进制之间的相互转换 二进制数转成八进制数:由于8是2的整数次幂,因此,一位八进制数正好相当于三位二进制数。对于整数,转换顺序是从最右三位数起,不够三位补零,同理对于小数,按从左向右的顺序进行。 例:将二进制数11010110101.11101011101B转换成八进制数。 整数: 0 11010110101 3 2 6 5 (3265)8 小数: 11101011101 0 (0.7272)8 7 2 7 2 所以 (11010110101.11101011101)2 = (3265.7272)8
1数制 数制之间的转换 二进制、八进制、十六进制之间的相互转换 二进制数转成十六进制数:由于16也是2的整数次幂,因此,一位十六进制数正好相当于四位二进制数。对于整数,转换顺序是从最右四位数起,不够四位补零,同理对于小数,按从左向右的顺序进行。 例:将二进制数110100111111010.10111101101001B转换成十六进制数。 整数: 0 110100111111010 6 9 F A (69FA)16 小数: 10111101101001 00 (0.BDA4)16 B D A 4 所以 (110100111111010.10111101101001)2 = (69FA.BDA4)16
1数制 数制之间的转换 二进制、八进制、十六进制之间的相互转换 由于八进制或十六进制与二进制之间的转换极为方便,而且用八进制或十六进制书写要比用二进制书写简短,阅读也方便,因此,八进制或十六进制常用于指令的书写、编制程序或目标程序的输入与输出。 特别是,计算机存储器以字节为单位,一个 字节包含八个二进制位,正好用两个十六进 制位表示,因此,十六进制用得更多一些。
1数制 二进制的重要性 计算机内部的一切信息(包括数值、字符、指令等)的存放、处理和传送均采用二进制数的形式。二进制数在计算机内是以元器件的物理状态来表示的,这些元器件具有两种不同的稳定状态(低电平表示0,高电平表示1)且能相互转换。 在计算机内部,采用二进制数表示信息的原因主要有以下几点: (1)容易实现。具有两种稳定状态的电子器件在技术上很容易实现。 (2)可靠性好。 (3)具有逻辑性。二进制数的0和1与逻辑代数中的真和假相对应。 二进制数的书写比较复杂,因此,通常又用八进制或十六进制来书写和表示。
2数据与编码 在计算机内部,数据均采用二进制编码来表示。一串二进制位,既可以表示数值的大小,也可以表示字符的编码。
2数据与编码 信息的存储单位 信息的单位通常采用“位”、“字节”、“字”。 位(bit):度量数据的最小单位,表示一位二进制信息。 字节(byte):一个字节由八位二进制数字组成(1 byte = 8 bit)。字节是信息存储中最常用的基本单位。
2数据与编码 信息的存储单位 计算机的存储器(包括内存与外存)通常也是以多少字节来表示它的容量。常用的单位有: K字节: 1K = 1024byte M(兆)字节: 1M = 1024K G字节: 1G = 1024M
2数据与编码 信息的存储单位 字(Word):字是位的组合,并作为一个独立的信息单位处理。字又称为计算机字,它的含义取决于机器的类型、字长以及使用者的要求。常用的固定字长有8位、16位、32位等。 机器字长:在讨论信息单位时,还有一个机器硬件指标有关的单位,这就是机器字长。机器字长一般是指参加运算的寄存器所含有的二进制数的位数, 它代表了机器的精度。
2数据与编码 二进制数的编码表示 一个数在机内的表达形式称为“机器数”,而它代表的数值称为此机器数的“真值”。 前面已经提到,数值信息在计算机内是采用二进制编码表示。数有正、负之分,在计算机中如何表示符号呢? 一般情况下:用“0”表示正号,“1”表示负号,符号位放在数的最高位。 例:8位二进制数A=(+1011011) B=(-1011011) ,它们在机器中 可以表示为: A: B: 其中最左边一位代表符号位,连同数字 本身一起作为一个数。
2数据与编码 二进制数的编码表示 数值信息在计算机内采用符号数字化处理后,计算机便可以识别和表示数符了。为了改进符号数的运算方法和简化运算器的硬件结构,人们研究了符号数的多种二进制编码方法,其实质是对负数表示的不同编码。 下面就给大家介绍几种常用的编码——原码,反码和补码。
2数据与编码 二进制数的编码表示 原码 将符号位数字化为0或1,数的绝对值与符号一起编码,即所谓“符号——绝对值表示”的编码,称为原码。 用原码表示一个带符号的整数: 如果我们用一个字节存放一个整数,其原码表示如下: X=+0101011 [X]原=00101011 X=-0101011 [X]原=10101011 这里,“[X]原”就是机器数,X称为机器数 的真值。
2数据与编码 二进制数的编码表示 原码 用原码表示一个带符号的纯小数: 原码表示就是把小数点左边一位用作符号位。 例如: X=0.1011 [X]原=0.1011 X=-0.1011 [X]原=1.1011
2数据与编码 二进制数的编码表示 原码 当采用原码表示法时,编码简单直观,与真值转换方便。但原码也存在一些问题: (1)零的表示不唯一,因为: [+0]原=00000000 [-0]原=10000000 零有二义性,给机器判零带来麻烦。 (2)用原码进行四则运算时,符号位需 单独处理,且运算规则复杂。
2数据与编码 二进制数的编码表示 反码 反码很少使用,但作为一种编码方式和求补码的中间码,下面给大家介绍一下。 正数的反码与原码表示相同。 负数反码的符号位与原码相同(仍用1表示),其余各位取反(0变1,1变0)。例如: X=+1100110 [X]原=01100110 [X]反=01100110 X=-1100110 [X]原=11100110 [X]反=10011001 X=+0000000 [X]原=00000000 [X]反=00000000 X=-0000000 [X]原=10000000 [X]反=11111111 和原码一样,反码中零的表示也不唯一。
2数据与编码 二进制数的编码表示 反码 当X为纯小数时,反码表示如下: X=0.1011 [X]原=0.1011 [X]反=0.1011 X=-0.1011 [X]原=1.1011 [X]反=1.0100
2数据与编码 二进制数的编码表示 补码 模数的概念 模数从物理意义上讲,是某种计量器的容量。例如,我们日常生活中用的钟表,模数就是12。钟表计时的方式是:达到12就从零开始(扔掉一个12),这在数学上是一种“取模(或取余)运算(mod)”。例如: 14 mod 12 = 2 如果现在的准确时间是6点整,而你的手表指向8点,怎样把表拨准呢?可以有两种方法:把表往后拨2小时,或把表往前拨10小时,效果是一样的,即: 8 - 2 = 6 (8 + 10) mod 12 = 6
2数据与编码 二进制数的编码表示 补码 模数的概念 在模数系统中: 8 - 2 = 8 + 10 (mod 12) 上式之所以成立,是因为2与10对模数12是互为补数的(2+10=12)。 因此,我们可以认可这样一个结论:在模数系统中,一个数减去另一个数,或者说一个数加上一个负数,等于第一个数加上第二个数的补数: 8 + (-2) = 8 + 10 (mod 12) 我们称10为-2在模12下的“补码”。负数采用补码表示后,可以使加减法统一为加法运算。
2数据与编码 二进制数的编码表示 补码 补码表示法 由以上分析得知,对一个二进制负数可用其模数与真值做加法(模减去该数的绝对值)求得其补码。例: X=-0110 [X]补= 24+(-0110) =1010 X=-0.1011 [X]补= 2+(-0.1011) =1.0101 由于机器中不存在数的真值形式,用上述公式求补码在机器中不易实现,但从上式可推导出一个简便方法。
2数据与编码 二进制数的编码表示 补码 补码表示法 对于一个负数,其补码由该数反码的最末位加1求得。 例:求X=-1010101的补码 [X]原=11010101 [X]反=10101010 [X]补=10101011 例:求X=-0.1011的补码 [X]原=1.1011 [X]反=1.0100 [X]补=1.0101 对于正数来说,其原码、反码、补码形式相同。
2数据与编码 二进制数的编码表示 补码 补码表示法 补码的特点之一就是零的表示唯一。 [+0]补=00000000 [-0]补= [-0]反+1 = 11111111+1 = 1 00000000 自动丢失
2数据与编码 二进制数的编码表示 补码 补码的运算规则 当数值信息参与算术运算时,采用补码方式是最方便的。首先,符号位可作为数值参加运算,最后仍可得到正确的结果符号,符号无需单独处理;其次,采用补码进行运算时,减法运算可转换为加法运算,简化了硬件中的运算电路。 例:用8位十进制补码计算67-10=? 例:用8位十进制补码计算10-67=?
2数据与编码 二进制数的编码表示 定点数与浮点数 数值数据既有正、负之分,又有整数和小数之分。在计算机中通常采用浮点方式表示小数,下面给大家介绍数的浮点表示法。 一个数N用浮点形式表示(即科学表示法),可以写成: N = M × RE 其中R表示基数,一旦机器定义好了基数值,就不能再改变了。因此基数在数据中不出现,是隐含的,一般取2。 E表示2的幂,称为数N的阶码。阶码确定 数N的小数点的位置,其位数反映了该浮点数 所表示的数的范围。 M表示数N的全部有效数字,称为数N的尾 数,其位数反映了数据的精度。
2数据与编码 二进制数的编码表示 定点数与浮点数 阶码和尾数都是带符号的数,可以采用不同的码制表示法,例如尾数常用原码或补码表示,阶码多用补码表示。 浮点数的具体格式随不同机器而有所区别。例如,假设有一台16位机,其浮点数组成为阶码4位,尾数12位,则浮点数格式如下: 小数点位置 15 14 12 11 10 0 阶符 阶码 尾符 尾码 下面是一个实际的例子,其中阶码、尾数 分别用补和原码表示。 表示: -0.11×22 表示: 0.11×2-3
2数据与编码 二进制数的编码表示 数的表示范围 机器中数的表示范围与数据位数及表示方法有关。一个m位整数(包括一位符号位),如果采用原码或反码表示法,能表示的最大数为2m-1-1,最小数为-(2m-1-1)。若有补码表示,能表示的最大数值为2m-1-1,最小数为-2m-1。 这里要说明一点,由于补码中的“0”的表示是唯一的,故[X]补= 100…0,对应的真值X = -2m-1,从而使补码的表示范围与原码有一点差异。(注意:补码100…0 的形式是一个特殊情况,权为2m-1位的1既代表 符号又表示数值)。 例:设m=8,则原码表示范围为_____________,反码表示范围 是____________,补码的表示范围是______________。 -127 ~ +127 -127 ~ +127 -128 ~ +127
2数据与编码 非数值信息的表示 非数值编码的概念 在计算机内部,非数值信息也是采用“0”和“1”两个符号来进行编码表示的。下面着重介绍一下中、西文的编码方案。
2数据与编码 非数值信息的表示 ASCII编码 计算机普遍使用的编码是ASCII编码。ASCII编码是美国标准信息交换码( American Standard Code for Information Interchange)的缩写,它是将字符用二进制代码表示的编码系统,已经被国际标准化组织ISO采纳,作为国际通用的信息交换标准代码。如下所示
2数据与编码 ASCII码
2数据与编码 非数值信息的表示 ASCII编码 ASCII码是一种七位码,也就是说,每个字节的八位只占用了七位,把最高位置为0。在ASCII码中,一个字节表示一个字符,可以表示26个英文大、小写字母,10个阿拉伯数字,32个专用符号和34个通用控制符号。
2数据与编码 非数值信息的表示 国家标准汉字编码 我国在1980年颁布了计算机处理汉字的编码标准GB2312-80,即信息交换用汉字编码字符集——基本集,简称国标码。 汉字国标码共收录了7445个汉字和图形符号,主要包括以下几部分: (1)按汉语拼音字母顺序排列的一级汉字3755个。 (2)按汉字部首顺序排列的二级汉字3008个。 (3)图形符号682个。
2数据与编码 非数值信息的表示 国家标准汉字编码 国标码用两个字节来表示一个汉字(一个字节显然不够,其最多表示28个字符),每个字节只用后七位,最高位为0。在实际应用中,用四位十六进制数(称为区位码,是用两个字节的二进制转换而来的)来表示一个汉字。计算机汉字输入法中的区位码输入法,就是按照国标码输入汉字的,区位码的高字节称为区号,低字节称为位号。 需要注意的是,在计算机内部进行汉字处理时,不能直接使用国标码,而要将最高位变为1,转换成汉字内码(简称内码)。这样做是为了区别汉字码与ASCII码,当其最高位为0时,表示ASCII,当其最高位为1时,表示汉字码。
2数据与编码 非数值信息的表示 国家标准汉字编码 汉字是一种象形文字,每一个汉字都可以看成是一个特定的图形,这种图形可以用点阵来描述。 例如,如果用16×16点阵来表示一个汉字,则一个汉字图形一行有16个二进制位,一共有16行。由于计算机存储器的每一个字节有八个二进制位,所以16个二进制位相当于两个字节。因此,一个16×16点阵的汉字字形需要2(字节)×16(行)=32个字节存放,这 32个字节中的信息就构成了一个汉字的字模。 所有汉字模的集合就构成了汉字字库。 例:一个24×24点阵的汉字字形需要用多少个字节存放。 × 3(字节) = 72个字节 24(行)
2数据与编码 非数值信息的表示 国家标准汉字编码 计算机要输出一个汉字时,首先要根据该汉字的机内码找出其字模信息在字库中的位置,然后取出汉字的字模信息作为图形在屏幕上显示或在打印机上输出。
小结 1.各种进位制的表示方法; 2.各种进位制之间的相互转换; 3.计算机中采用二进制的优点; 4.位、字节的概念; 5.机器中数的表示; 6.ASCII码表的用法,ASCII码的特点; 7.汉字编码的内码和外码和字形码。