免费注册 查看新帖 |

Chinaunix

  平台 论坛 博客 文库
最近访问板块 发新帖
查看: 1151 | 回复: 0
打印 上一主题 下一主题

数据的表示 [复制链接]

论坛徽章:
0
跳转到指定楼层
1 [收藏(0)] [报告]
发表于 2008-02-27 16:44 |只看该作者 |倒序浏览

一. 基本概念:
   在计算机内部表示二进制数的方法称为数值编码,把一个数及其符号在机器中的表示加以数值化,称为机器数。机器数所代表的数称为数的真值。  表示一个机器数,应考虑以下三个因素:  
  1.机器数的范围
  字长为8位,无符号整数的最大值是(11111111)B=(255)D,此时机器数的范围是0~255。
  字长为16位,无符号整数的最大值是
  (1111111111111111)B=(FFFF)H=(65535)D      此时机器数的范围是0~65535。
  2.机器数的符号
  在算术运算中,数据是有正有负的,将这类数据称为带符号数。
  为了在计算机中正确地表示带符号数,通常规定每个字长的最高位为符号位,并用0表示正数,用1表示负数。
  3.机器数中小数点的位置
  在机器中,小数点的位置通常有两种约定:
  一种规定小数点的位置固定不变,这时的机器数称为“定点数”。
  另一种规定小数点的位置可以浮动,这时的机器数称为“浮点数”。  
  4.原码
  正数的符号位为0,负数的符号位为1,其它位按照一般的方法来表示数的绝对值。用这样的表示方法得到的就是数的原码。
  【例2.13】当机器字长为8位二进制数时:
            X=+1011011                   [X]原码=01011011
            Y=+1011011                   [Y]原码=11011011
            [+1]原码=00000001              [-1]原码=10000001
            [+127]原码=01111111            [-127]原码=11111111
  原码表示的整数范围是:
  -(2n-1-1)~+(2n-1-1),其中n为机器字长。
  则:8位二进制原码表示的整数范围是-127~+127
              16位二进制原码表示的整数范围是-32767~+32767
  5.反码         
  对于一个带符号的数来说,正数的反码与其原码相同,负数的反码为其原码除符号位以外的各位按位取反。【例2.14】当机器字长为8位二进制数时:
  X=+1011011  [X]原码=01011011   [X]反码=01011011
  Y=-1011011  [Y]原码=11011011   [Y]反码=10100100
  [+1]反码=00000001    [-1]反码=11111110
  [+127]反码=01111111    [-127]反码=10000000
  负数的反码与负数的原码有很大的区别,反码通常用作求补码过程中的中间形式。         反码表示的整数范围与原码相同。
  6.补码
  正数的补码与其原码相同,负数的补码为其反码在最低位加1。
  【例2.15】(1)X=+1011011  (2) Y=-1011011
  (1)根据定义有:  [X]原码=01011011        [X]补码=01011011
  (2) 根据定义有: [Y]原码=11011011        [Y]反码=10100100  
  [Y]补码=10100101
  补码表示的整数范围是-2n-1~+(2n-1-1),其中n为机器字长。
  则:8位二进制补码表示的整数范围是-128~+127
        16位二进制补码表示的整数范围是-32768~+32767
  当运算结果超出这个范围时,就不能正确表示数了,此时称为溢出。
  7.补码与真值之间的转换
  正数补码的真值等于补码的本身;负数补码转换为其真值时,将负数补码按位求反,末位加1,即可得到该负数补码对应的真值的绝对值。
  【例2.16】[X]补码=01011001B,[X]补码=11011001B,分别求其真值X。
  (1)[X]补码代表的数是正数,其真值:
                                              X=+1011001B
                                                 =+(1×26+1×24+1×23+1×20)
                                                =+(64+16+8+1)
                                                =+(89)D
  (2)[X]补码代表的数是负数,则真值:
                                              X=-([1011001]求反+1)B
                                                =-(0100110+1)B
                                                =-(0100111)B
                                                =-(1×25+1×22+1×21+1×20)
                                                =-(32+4+2+1)
                                                =-(39)D
二. 数和浮点数表示:
  1.定点数
  由于定点位置不同,一般又分为两种情况。
对于整数,小数点约定在最低位的右边,称为定点整数。对于纯小数,小数点约定在符号位之后,称为定点小数。
  2.浮点数
  如果要处理的数既有整数部分,又有小数部分,则采用定点数会遇到麻烦。为此可以采用浮点数,即小数点的位置不固定。
三. 编码:
  1.美国信息交换标准代码(ASCII码)
  ASCII(American Standard Code for Information Interchange)码是美国信息交换标准代码的简称,用于给西文字符编码;包括英文字母的大小写、数字、专用字符、控制字符等;这种编码由7位二进制数组合而成,可以表示128种字符;
  在ASCII码中,按其作用可分为:
  34个控制字符;
  10个阿拉伯数字
  52个英文大小写字母;
  32个专用符号
  2.二—十进制编码——BCD码
  BCD(Binary-Coded  Decimal)码又称为“二—十进制编码”,专门解决用二进制数表示十进数的问题。最常用的是8421编码,其方法是用4位二进制数表示1位十进制数,自左至右每一位对应的位权是8、4、2、1。
  1.压缩BCD码
  每一位数采用4位二进制数来表示,即一个字节表示2位十进制数。例如:二进制数10001001B,采用压缩BCD码表示为十进制数89D。
  2.非压缩BCD码
  每一位数采用8位二进制数来表示,即一个字节表示1位十进制数。而且只用每个字节的低4位来表示0~9,高4位为0。
  例如:十进制数89D,采用非压缩BCD码表示为二进制数是:
  1000 00001001B  
四. 1.基本概念:                 
   计算机处理汉字信息的前提条件是对每个汉字进行编码,这些编码统称为汉字代码。在汉字信息处理系统中,对于不同部位,存在着多种不同的编码方式。比如,从键盘输入汉字使用的汉字代码(外码)就与计算机内部对汉字信息进行存储、传送、加工所使用的代码(内码)不同,但它们都是为系统各相关部分标识汉字使用的。
  系统工作时,汉字信息在系统的各部分之间传送,它到达某个部分就要用该部分所规定的汉字代码表示汉字。因此,汉字信息在系统内传送的过程就是汉字代码转换的过程。这些代码构成该系统的代码体系,汉字代码的转换和处理是由相应的程序来完成的。
  2.汉字代码的表示方法
  (1)汉字输入码
  汉字输入码是为用户由计算机外部输入汉字而编制的汉字编码,又称为汉字外部码,简称外码。使用较多的有以下4类:
  (1)顺序码:如区位码、电报码等。
  (2)音码:如拼音码、自然码等。
  (3)形码:如五笔字型、大众码等。
  (4)音形码:如双拼码、五十字元等。
  (2)汉字机内码
  汉字机内码是汉字处理系统内部存储、处理汉字而使用的编码,简称内码。
  (3)汉字字形码
  汉字字形码是表示汉字字形信息的编码。
  (4)汉字交换码
  汉字交换码是汉字信息处理系统之间或通信系统之间传输信息时,对每个汉字所规定的统一编码。
  3.几种常用的汉字编码
  1.国标码         即“中华人民共和国国家标准信息交换汉字编码”(代号GB2312-80)。共收录汉字和图形符号7445个。其中:一级常用汉字3755个;二级非常用汉字和偏旁部首3008个;图形符号682个。
  2.区位码        将GB2312-80全部字符集组成一个94×94的方阵,每一行称为一个“区”,编号从01~94;每一列称为一个“位”,编号也是从01 ~ 94。这样,每一个字符便具有一个区码和一个位码,将区码置前,位码置后,组合在一起就成为区位码。
  3.BIG-5码     BIG-5码是我国台湾地区编制和使用的一套中文内码。它是为了解决各生产厂家中文内码不统一的问题而设计出的一套编码,并采用5大套装软件的“五大”命名为“BIG-5”码,俗称“大五码”。
  4.GB13000码      国际标准化组织(ISO)于1993年公布了“通用多八位编码字符集”的国际标准(ISO/IEC 10646)。我国发布了与其一致的国家标准,即GB13000码。
  一、汉字的层次与笔划:每个汉字都是由横、竖、撇、捺、折五种笔划组合而成的。
  二、汉字可以划分为三个层次:笔划、字根、单字。
  三、五笔字型方案将130种字根分别排列在除Z以外的25个英文字母键上,这130种基本字根,按照首笔笔划代号。兼顾键位设计的需要,共分成5个区,每个区又分成5个位,这样就得到11-15、21-25、31-35、41-45、51-55共25个键位。
  四、字根的区位:
  (1)第1区是横区,所有第一笔划是横的字根均在第1区。横区的字母键为G、F、D、S、A五个键。
  (2)第2区是竖区,所有第一笔划是竖的字根均在第2区,竖区的字母键为H、J、K、L、M五个键。
  (3)第3区是撇区,所有第一笔划是撇的字根均在第3区。撇区的字母键为T、R、E、W、Q五个键。
  (4)第4区是捺区,所有第一笔划是捺的字根均在第4区。捺区的字母键为Y、U、I、O、P五个键。
  (5)第五区是折区,所有第一笔划是折的字根均在第5区,折区的字母键为N、B、V、C、X五个键。


本文来自ChinaUnix博客,如果查看原文请点:http://blog.chinaunix.net/u1/59646/showart_485034.html
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

北京盛拓优讯信息技术有限公司. 版权所有 京ICP备16024965号-6 北京市公安局海淀分局网监中心备案编号:11010802020122 niuxiaotong@pcpop.com 17352615567
未成年举报专区
中国互联网协会会员  联系我们:huangweiwei@itpub.net
感谢所有关心和支持过ChinaUnix的朋友们 转载本站内容请注明原作者名及出处

清除 Cookies - ChinaUnix - Archiver - WAP - TOP