西文字符和汉字的编码表示

  • 西文字符
    • 概念
      • ASCII码表特点
    • 西文字符特点
    • 西文字符表示(常用编码为7位ASCII码)
    • 西文字符操作
  • 汉字字符
    • 编码形式
    • 输入码
    • 字符集与汉字内码
      • 汉字的区位码
      • 汉字的国标码
      • 汉字内码
    • 汉字的字模点阵码和轮廓表示
      • 字库
      • 汉字的字形有两种描述方法:字模点阵描述、轮廓描述

西文字符

概念

  西文字符由拉丁字母、数字、标点符号及一些特殊符号组成,称为“字符

  所有字符组成的集合称为“字符集

字符不能在计算机中直接处理,需要对其进行数字化编码,字符集中每个字符都有一个编码(二进制0/1序列)

  由字符二进制编码构成的字符集称为“码表

  字符集有很多种,每个字符集的编码方式也是多种多样,目前最广泛的字符集及其编码时ASCII码

  ASCII码表中每个字符都是由7个二进制位b5b4b3b2b1b0表示,其中b6b5b4位高位部分,b3b2b1b0为低位部分

  计算机中一个字符实际存储为8位,在字符的七位存储之上添加了用于奇偶校验的奇偶校验位b7,一般情况下该位为0

ASCII码表特点

  字符0~ 9这十个数字字符高三位均为011,低四位分别为0000~ 1001,低四位为0 ~ 9的8421码

  字母排序也符合正常的字母排序规则,且大小写字母差别仅在b5位上,该位为0则为大写

西文字符特点

  西文字符是一种拼音文字,用有限几个字母可拼写出所有单词

  西文字符只需对有限个字母和数学符号、标点符号等辅助字符编码

  西文字符所有字符总数不超过256个,使用7或8个二进位可表示

西文字符表示(常用编码为7位ASCII码)

  十进制数字:0/1/2…/9
  英文字母:A/B/…/Z/a/b/…/z
  专用符号:+/-/%/*/&/……
  控制字符(不可打印或显示)

西文字符操作

  字符串操作,如:传送/比较 等

汉字字符

  中文信息的基本组成单位是汉字,汉字也是字符,但汉字是表意字符,一个字是一个方块图形

  计算机对汉字信息处理需要对汉字本身进行编码,但汉字数量巨大,总数超过6万字,给汉字在计算机内部的表示、汉字的传输与交换、汉字的输入和输出等带来了一系列问题

编码形式

  输入码:对汉字用相应按键进行编码表示,用于输入

  内码:用于在系统中进行存储、查找、传送等处理

  字模点阵或轮廓描述: 描述汉字字模点阵或轮廓,用于显示/打印

输入码

  键盘是面向西文设计的,一个西文字符对应一个按键,因此键盘输入西文字符时非常方便,但汉字是大字符集,专门的汉字输入键盘由于键多、查找不方便、成本高等原因无法使用

  因此将汉字对应一个或几个键来表示,这种对每个汉字用相应的按键进行的编码表示就称为汉字的“输入码”也称为“外码"

汉字输入码的码元(组成编码的基本元素)为西文键盘的某个按键

字符集与汉字内码

  汉字被输入到计算机中后,就按照”内码“的编码格式进行存储、查找、传送等处理

  对于西文字符,其内码就是ASCII码

  为了适应计算机对汉字信息的需求,1981年我国颁布了GB2312-80 字符集,该标准选出了6763个常用汉字,这个标准被称为”国标码“或”国标交换码“

GB2312-80 字符集由三部分组成
① 字母、数字和各种符号,包括英文、俄文、日文平假名与片假名、罗马字母、汉语拼音等共687个
② 一级常用汉字,共3755个,按汉语拼音排列
③ 二级常用汉字,共3008个 ,不太常用,按偏旁部首排列

汉字的区位码

   GB2312-80 字符集为其中每个任意字符规定了一个唯一的二进制代码

  码表由94行(十进制0~93行)、94列组成(十进制0~93列),行号称为区号,列号称为位号

  每个汉字或符号在码表中都有指定的位置,因此有一个唯一的位置码,该位置用区号和位号的二进制代码表示,区号在左、位号在右,各占7位指出汉字在码表中的位置,共14位称为”区位码",区位码指出了汉字在码表中的位置

汉字的国标码

  汉字的区位码并不是国标码(国标交换码),由于信息传输的原因每个汉字的区号和位号必须各自加上32(十进制编号的20H),这样区号和位号各自加上32后对应的二进制代码才是汉字的国标码

汉字内码

  汉字的国标码前后各7位分别用一个字节表示,多出来的一位存储用于奇偶校验的奇偶校验码b7,与ASCII不同国标码的奇偶校验码一般为1,这种双字节(16位)的汉字编码就是其中一种汉字的“机内码

  为了与一字节的ASCII码区分(区分一个字节是一个ASCII码还是半个国标码),使得汉字的两字节中的奇偶校验码(b7)总等于1,以与奇偶校验码总位0的ASCII区分

例:汉字“大”在码表中位于第20行、第83列。
因此区位码为0010100 1010011,在区、位码上各加32得到两个字节编码,即00110100 01110011B=3473H。
前面的34H和字符“4”的ACSII码相同,后面的73H和字符“s”的ACSII码相同
但是,将每个字节的最高位各设为“1”后,就得到其内码:B4F3H (1011010011110011B),因而不会和ASCII码混淆。

汉字的字模点阵码和轮廓表示

  通过计算机处理后的汉字,如果需要在屏幕上显示或用打印件打印必须把汉字机内码转换为人可以阅读的方块字

字库

  每一个汉字的字形都必须预先放在计算机中存储起来,一套汉字(如GB2312国标汉字字符集)的所有字符的形状表述信息集合在一起称为“字形信息库”,简称”字库“

  不同的字形对应着不同的字库,输出每一个汉字时,计算机都需要到字库中找到它的字形表述信息,然后把字形信息送到相应的设备输出

汉字的字形有两种描述方法:字模点阵描述、轮廓描述

  字模点阵描述是指将字库中的汉字或其他字符的字形(字模)用一个其元素由0/1组成的方阵表述,汉字或其他字符中有黑点的地方用1表示,空白处用0表示,将这种描述汉字字模的二进制点阵数据称为汉字的“字模点阵码”

  轮廓描述方法是将汉字笔画的轮廓用一组直线和曲线来勾画,记下每一条直线和曲线的数学表述公式,目前已有两类国际标准:Adobe Tyepel 和 True Type,这种轮廓描述字形的方式精度高,字形大小也可以任意变换

【非数值数据的编码】西文字符和汉字的编码表示 汉字国标码、机内码详细理解相关推荐

  1. 【学习计算机组成原理】非数值数据的表示

    文章目录 非数值数据 逻辑数据 西文字符 汉字 输入码(外码) 内码 区位码 国标码 一种内码 字形码(机内码) 非数值数据 没有具体值得数据,在坐标轴上找不到对应点.如逻辑真假,西文字符,汉字,音频 ...

  2. java汉字转换国标码_GBK/GB2312编码问题分析以及java获取汉字国标码

    import java.io.UnsupportedEncodingException; import java.util.regex.Matcher; import java.util.regex. ...

  3. 字符的编码表示——ASCII码、国标码、Unicode码

     ASCII码: 美国信息交换标准代码(American Standard Code for Information Interchange) 其中包括62个英文字母和阿拉伯数字,33个可打印字符,3 ...

  4. 输入一个字符串,删除汉字字符或者西文字符(C语言)

    西文字符就是ASCII码 删除字符串中的汉字 #include<stdio.h> void main() { char s[81]; int i, j; gets(s); for (i = ...

  5. 在计算机中 最普遍的西文编码是,目前在计算机中最普遍采用的西文字符编码是...

    语音内容: 大家好,我是时间财富网智能客服时间君,上述问题将由我为大家进行解答. 目前在计算机中最普遍采用的西文字符编码是ASCII码,它是是基于拉丁字母的一套电脑编码系统,主要用于显示现代英语和其他 ...

  6. 汉字转换成NCR编码的字符

    在 ISO-8859-1 编码的网页上显示汉字.一种解决办法就是我们不用 ISO-8859-1 或者 GB2312 编码,而统统都采用 UTF-8 编码.另一种就是把除了 ISO-8859-1 编码中 ...

  7. 计算机会不会把一个汉字误认为两个西文字符,计算机会不会把一个汉字误认为是两个西文字符...

    满意答案 选择A,汉字信息的编码知识1.区位码:GB2312-80字符集,组成一个94*94的矩阵.每一行称为一个"区",每一列称为一个"位".一个汉字的区号和 ...

  8. 计算机会不会把一个汉字误认为两个西文字符,一个汉字用两个字节 一个西文字符用一个字节 那计算机会不会把一个汉字误认为两个西文?为什么...

    一般从ASCII码来判断: 当认为存放字符的单元是无符号字符时,ASCII小于等于127的是西文字符(或常用字符),否则是汉字. 当认为存放字符的单元是有符号字符时,ASCII为正数的字符为西文字符, ...

  9. html设编码为中文简体,node.js将html字符实体编码转化成可识别的简体中文汉字

    node.js将html字符实体编码转化成可识别的简体中文汉字 2016-10-23    分类: nodejs笔记 node.js html 实体 编码 转化 汉字 中文 如果在node.js后台输 ...

最新文章

  1. wifidog接口文档(转)
  2. MySql 长时间读数据发生超时的异常 Mysql Reader Exception TimeOut expired
  3. BZOJ 1588: [HNOI2002]营业额统计
  4. c语言判断一个分数是不是最简分数_青岛版六年级数学上册7.2小数、分数和百分数的互化微课视频 | 练习...
  5. h5启动原生APP总结
  6. linux恢复rm删除文件ssd,科学网—linux恢复rm -rf删除的文件 - 罗晓光的博文
  7. 3. 什么是icmp?icmp与ip的关系_公共关系与人际交往能力自主模式课程相关
  8. python实训day7
  9. python人脸识别方法_python实现人脸识别代码
  10. opencv使用tensorflow ssd迁移学习 pb文件转pbtxt文件出错
  11. MATLAB程序:S-V信道模型
  12. 音频,视频和视觉效果
  13. python mysql跨库查询_Python查询mysql库
  14. Google map API:查询地理位置和经纬度信息示例
  15. www.tf.tt index.php,恶意软件分析 URL链接扫描 免费在线病毒分析平台 | 魔盾安全分析...
  16. PTA 单链表(流浪狗收养所)
  17. 三分钟了解多模光纤和单模光纤的区别-ielab
  18. 送你一份迷你书,全面了解如何做好大促技术备战
  19. 项目经理到底要不要考取PMP证书呢?
  20. 服务器raid卡安装在什么位置,安装raid卡

热门文章

  1. null对象打印为什么是null?
  2. 国外人气APP网站,论坛,推广平台。
  3. jquery使用淘宝接口跨域查询手机号码归属地实例
  4. 太空狼人杀(Among US)只能QuickChat 更改年龄限制达到可以Free To chat方法
  5. matlab (k),MATLAB的sgolay(k,f)的Python等价物是什么?
  6. java ltp4j_博客 | 收藏 | 100多个DL框架、AI库、ML库、NLP库、CV库汇总,建议收藏!...
  7. 用Mathematica实现各类积分图形区域绘制与积分计算及结果的快速检验方法(一)
  8. Java鼠标自动点击及文件内容读取复制
  9. 站在2023的起点,目前自动驾驶技术发展到了什么水平?
  10. 流畅的Python学习