计算机中数据的概念是广义的,计算机除了处理各种数之外,还要处理大量符号,如英文字母、汉字等非数值的信息。例如,当要用计算机编写文章时,就需要将文章中的各种符号、英文字母、汉字等输入计算机,然后由计算机进行编辑排版。因此,计算机要对各种文字进行处理。

通常,计算机中的数据可以分为数值型数据与非数值型数据。其中数值型数据就是常说的“数”(如整数、实数等),它们在计算机中是以二进制形式存放的,这部分内容在1.1.2节中已做了讲解。而非数值型数据与一般的“数”不同,通常不表示数值的大小,而只表示字符或图形等信息,但这些信息在计算机中也是以二进制形式来表示的。本节具体讲解字符数据在计算机中的表示方法。

字符的编码

目前,国际上通用的且使用最广泛的字符有十进制数字符号0~9,大小写的英文字母,各种运算符、标点符号等,这些字符的个数不超过128个。为了便于计算机识别与处理,这些字符在计算机中是用二进制形式来表示的,通常称为字符的二进制编码。

由于需要编码的字符不超过128个,因此,用7位二进制数就可以对这些字符进行编码。但为了方便,字符的二进制编码一般占8个二进制位,它正好占计算机存储器的一个字节。

目前国际上通用的是美国国家信息交换标准代码(American Standard Code for Information Interchange),简称为ASCII码(取英文单词的第一个字母的组合)。

用ASCII表示的字符称为ASCII码字符,表1-4是ASCII码编码表。

ASCII码编码表

ASCII码规定每个字符用7位二进制编码表示,表1-4中第一行是第6、5、4位的二进制编码值,第一列是第3、2、1、0位的十进制编码值,第一行、第一列的交点则是指定的字符。7位二进制可以给出128个编码,表示128个常用的字符。其中95个编码,对应着计算机终端能输入并且可以显示的95个字符,打印机设备也能打印这95个字符,如大小写各26个英文字母,0~9这10个数字符,通用的运算符和标点符号=、+、−、*、/、<、>、,、:、·、?、。、(、)、{、}等。

例如要知道字母“A”的ASCII码,查表得知字母A在第2行第5列的位置。行指示了ASCII码第3、2、1、0位的状态,列指示第6、5、4位的状态,因此字母A的ASCII码是1000001B=41H。

汉字的编码

为了适应中文信息处理的需要,1981年国家标准局公布了GB2312—80《信息交换用汉字编码字符集——基本集》,收集了常用汉字67 763个,并给这些汉字分配了代码。

用计算机进行汉字信息处理,首先必须将汉字代码化,即对汉字进行编码,称为汉字输入码。汉字输入码送入计算机后还必须转换成汉字内部码,才能进行信息处理。处理完毕之后,再把汉字内部码转换成汉字字形码,才能在显示器或打印机输出。因此汉字的编码有输入码、内码、字形码三种。

汉字的输入码

目前,计算机一般是使用西文标准键盘输入的。为了能直接使用西文标准键盘输入汉字,必须给汉字设计相应的输入编码方法。其编码方案有很多种,主要的分为三类:数字编码、拼音码和字形编码。

①数字编码。常用的数字编码是国标区位码,规定全部国标汉字及符号组成94×94的矩阵。在这矩阵中,每一行称为一个“区”,每一列称为一个“位”。这样,就组成了94个区(01~94区),每个区内有94个位(01~94)的汉字字符集。区码和位码简单地组合在一起(即两位区码居高位,两位位码居低位)就形成了“区位码”。区位码可唯一确定某一个汉字或汉字符号;反之,一个汉字或汉字符号都对应唯一的区位码。例如,汉字“玻”的区位码为“1803”(即在18区的第3位)。

所有汉字及符号的94个区划分成如下四个组:

1~15区为图形符号区,其中,1~9区为标准区,10~15区为自定义符号区。

16~55区为一级常用汉字区,共有3755个汉字,该区的汉字按拼音排序。

56~87区为二级非常用汉字区,共有3008个汉字,该区的汉字按部首排序。

88~94区为用户自定义汉字区。

数字编码输入的优点是无重码,输入码与内部编码的转换比较方便;缺点是代码难以记忆。

②拼音码。拼音码是以汉语拼音为基础的输入方法。凡掌握汉语拼音的人,不需训练和记忆,即可使用,但汉字同音字太多,输入重码率很高,因此按拼音输入后还必须进行同音字选择,影响了输入速度。

③字形编码。字形编码是用汉字的形状来进行的编码。汉字总数虽多,但是由一笔一画组成,全部汉字的部件和各行其实是有限的。因此,把汉字的笔画部件用字母或数字进行编码,按笔画的顺序依次输入,就能表示一个汉字了。五笔字型编码就是最有影响的一种字形编码方法。

汉字的内码

同一个汉字以不同输入方式进入计算机时,编码长度及0、1组合顺序差别很大,使汉字信息进一步存取、使用、交流十分不方便,必须转换成长度一致、且与汉字唯一对应的能在各种计算机系统内通用的编码,满足这种规则的编码叫汉字内码。

汉字内码是用于汉字信息的存储、交换检索等操作的机内代码,一般采用两个字节表示。英文字符的机内代码是7位的ASCII码,当用一个字节表示时,最高位为“0”。为了与英文字符能够区别,汉字机内代码中两个字节的最高位均规定为“1”。

有些系统中字节的最高位用于奇偶校验位或采用扩展ASCII码,这种情况下用三个字节表示汉字内码。

汉字的字形码

存储中计算机内的汉字需要在屏幕上显示或在打印机上输出时,需要知道汉字的字形信息。汉字内码并不能直接反映汉字的字形,而要采用专门的字形码。

目前的汉字处理系统中,字形信息的表示大体上有两类形式:一类是用活字或文字版的母体字形形式;另一类是点阵表示法、矢量表示法等形式,其中最基本的,也是大多数字形库采用的是以点阵的形式存储汉字字形编码的方法。

点阵字形是将字符的字形分解成若干“点”组成的点阵,将此点阵置于网格上,每一小方格是点阵中的一个“点”,点阵中的每一个点可以有黑白两种颜色,有字形笔画的点用黑色;反之用白色,这样就能描写出汉字字形了。

图1-1是汉字“次”的点阵,如果用十进制的“1”表示黑色点,用“0”表示没有笔画的白色点,每一行16个点用两字节表示,则需32字节描述一个汉字的字形,即一个字形码占32字节。

图1-1 汉字“次”的点阵

一个计算机汉字处理系统常配有宋体、仿宋、黑体、楷体等多种字体。同一个汉字不同字体的字形编码是不相同的。

根据汉字输出的要求不同,点阵的多少也不同。简易型汉字为16×16点阵,提高型汉字为24×24点阵、32×32点阵,甚至更高。点阵越大,描述的字形越细致美观,质量越高,所占存储空间也越大。汉字点阵的信息量是很大的,以16×16点阵为例,每个汉字要占用32个字节,国标两级汉字要占用256KB。因此字模点阵只能用来构成汉字库,而不能用于机内存储。

通常,计算机中所有汉字的字形码集合起来组成汉字库(或称为字模库)存放在计算机里,当汉字输出时由专门的字形检索程序根据这个汉字的内码从汉字库里检索出对应的字形码,由字形码再控制输出设备输出汉字。汉字点阵字形的汉字库结构简单,但是当需要对汉字进行放大、缩小、平移、倾斜、旋转、投影等变换时,汉字的字形效果不好。若使用矢量汉字库、曲线字库的汉字,其字形用直线或曲线表示,能产生高质量的输出字形。

综上所述,汉字从送入计算机到输出显示,汉字信息编码形式不尽相同。汉字的输入编码、汉字内码、字形码是计算机中用于输入、内部处理、输出三种不同用途的编码,不要混为一谈。

数据在计算机中编码方式教案,字符数据在计算机中的表示方法相关推荐

  1. arcgis中编码方式改变引起的shp文件乱码、字符截断问题处理

    arcgis中编码方式改变引起的shp文件乱码.字符截断问题处理 我们有时候使用ArcGIS读取shp文件的时候,打开属性表后,属性值存在中文乱码的情况,或字段项存在长度缩减的情况,这都是使用不同版本 ...

  2. 中文件编码方式_一文解开java中字符串编码的小秘密

    简介:在本文中你将了解到Unicode和UTF-8,UTF-16,UTF-32的关系,同时你还会了解变种UTF-8,并且探讨一下UTF-8和变种UTF-8在java中的应用. Unicode的发展史 ...

  3. Response响应字符数据(解决乱码问题),字符数据(文件输出)

    Response响应字符数据(解决乱码问题),字符数据(文件输出) Request:使用request对象来获取请求数据 Response:使用response对象来设置响应数据 Reponse的继承 ...

  4. php的内部方法编码方式,字符集字符编码以及PHP中的一些转码方法

    在重写一些老的项目的时候,有可能会遇到这种情况 ¾ÍÒµÖ¸µ¼ÖÐÐÄ2010Ä꺮¼Ù·Å¼Ù֪ͨ �����˵�λ������� ???????? 这就是传说中的乱码,要想处理乱码,得先了 ...

  5. java ascii 编码方式,Java 字符编码 ASCII、Unicode和UTF-8

    1 ASCII码 统一规定英语字符与二进制位之间的关系.ASCII码一共规定了128个字符的编码.例如,空格"SPACE"是32(二进制00100000),大写字母A是65(二进制 ...

  6. 计算机主要编码方式介绍

    在计算机内部,所有的信息最终都表示为一个二进制的字符串.每一个二进制位(bit)有0和1两种状态,因此8个二进制位就可以组合出256种状态,这就称为一个字节(byte).也就是说,一个字节可以表示25 ...

  7. 计算机用什么方式 管理程序和数据,计算机与外设之间数据传送方式有几种?各有什么特点?...

    原标题:计算机与外设之间数据传送方式有几种?各有什么特点? 主要有四种方式. 1.无条件传送方式,最简单的传送方式,所配置的硬件和软件最少. 2.查询传送方式,CPU的利用受到影响,陷于等待和反复查询 ...

  8. ASCII+Unicode+UTF8(字符编码方式-字节) Base64(字节编码方式-64字符)

    Base64 编码是一种可以把二进制文件编码成文本的编码规则.在很多地方地方都有用到,比如我们可以把图像转成 Base64 编码,然后内联到 HTML 或者 CSS 中. Base64 编码用一些很常 ...

  9. XML中的CDATA(字符数据)

    Introduction 介绍 The Term CDATA basically refers to Character Data. In XML it is basically a block of ...

最新文章

  1. 『高级篇』docker容器来说什么是微服务(三)
  2. hackthon提高
  3. 艿艿连肝了几个周末,写了一篇贼长的 Spring 响应式 Web 框架 WebFlux!市面第二完整~
  4. vmware如何安装solaris10
  5. Beautiful Array
  6. linux压缩和解压缩_Linux QuickTip:一步下载和解压缩
  7. getline没有与参数列表匹配的重载函数_C++新增基础功能解析—函数重载功能的使用...
  8. Whoops, looks like something went wrong.
  9. python手机壁纸超清_【原创】Python必应超清壁纸爬虫
  10. 谈MDM主数据管理系统、BI、大数据、SOA之间的关系
  11. Sentinel-1A数据 GRD和SLC的区别
  12. 计算机桌面图标变大怎么解决,小编教你电脑桌面图标变大了怎么办
  13. matlab微积分如何计算器,如何用matlab对这个函数进行积分。 请问这个公式是如何算出来的?使用微积分吗?...
  14. 微信,世界上最成功的私链
  15. BetterTouchTool使用指南——TouchBar篇
  16. 关于微信聊天中的语音开发
  17. PAT-2021年春季考试-甲级
  18. 接口可以继承接口吗?
  19. spring 自己定义标签 学习二
  20. LeetCode--路径总和III

热门文章

  1. K8S之PV的二次复用
  2. k8s安装步骤(1.22.0版本)
  3. 2021年汽车驾驶员(技师)免费试题及汽车驾驶员(技师)模拟考试题库
  4. day50 django第一天 自定义框架
  5. Vue+iview键盘事件keyup、keydown、keypress
  6. 苹果9是5g手机吗_仗剑龙魂龙武苹果手机能玩吗 苹果怎么下载
  7. 铅卤化物钙钛矿ABX3晶体薄膜量子点
  8. PP鸭为你的图片瘦瘦瘦身
  9. VisualVM工具的使用
  10. Linux查询安装的软件所在目录