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

2023-05-16

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

  • 西文字符
    • 概念
      • 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,这种轮廓描述字形的方式精度高,字形大小也可以任意变换

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

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

  • 问题解决记录集合

    1 解决pytorch下载mnist等数据集速度过慢 失败问题 xff1a https blog csdn net weixin 44414948 article details 109756003 utm medium 61 distri
  • java 通过onvif抓取海康摄像头图片

    java 通过onvif抓取海康摄像头图片 文章目录 java 通过onvif抓取海康摄像头图片前言一 把onvif jar放到自己的maven仓库二 pom文件引入jar包三 测试代码四 运行中的变量五 参考链接地址 前言 网上也有类似的
  • java常见面试题(二)

    java基础二 11 抽象类必须要有抽象方法吗 xff1f 不需要 xff0c 抽象类不一定非要有抽象方法 示例代码 xff1a abstract class Cat public static void sayHi System out
  • 2022高教社杯全国大学生数学建模竞赛B题解析(更新完结)

    2022高教社杯全国大学生数学建模竞赛B题解析 xff08 更新完结 xff09 题目解析前言问题一1 11 21 3问题二 题目 B 题 无人机遂行编队飞行中的纯方位无源定位 无人机集群在遂行编队飞行时 xff0c 为避免外界干扰 xff
  • c++的引用和指针原来是这种关系

    c 43 43 的引用和指针原来是这种关系 关于引用引用的概念 xff1a 引用的三种情况 xff1a 当引用作为返回值的时候 xff1a 引用和指针的区别 xff1a 关于引用 引用的概念 xff1a 引用不是新定义一个变量 xff0c
  • java面试题汇总一(会持续更新)

    不积跬步无以至千里 xff0c 这里会不断收集和更新Java基础相关的面试题 xff0c 目前已收集100题 1 什么是B S架构 xff1f 什么是C S架构 B S Browser Server xff0c 浏览器 服务器程序 C S
  • 【STM32】创建stm32工程中,各个文件夹及部分文件作用

    USER xff1a 存放工程文件 主函数文件 main c 以及其他包括system stm32f10x c等 CORE xff1a 用来存放核心文件和启动文件 OBJ xff1a 是用来存放编译过程文件以及hex 文件 STM32F10
  • Qt4.8类继承关系图(全网最全)

    一 概述 在学习Qt的时候快速的查询了解类的继承关系对我们的学习会有很大的帮助 xff0c 而网上流传的多是较老版本的 xff0c 并且是jpg格式 xff0c 不便于学习使用 xff0c 所以我就花了一些时间整理了这一套Qt类继承图 xf
  • Qt5.9类继承关系图(全网最全)

    一 概述 在学习Qt的时候快速的查询了解类的继承关系对我们的学习会有很大的帮助 xff0c 而网上流传的多是较老版本的 xff0c 并且是jpg格式 xff0c 不便于学习使用 xff0c 所以我就花了一些时间整理了这一套Qt类继承图 xf
  • Qt5.15类继承关系图(全网最全)

    一 概述 在学习Qt的时候快速的查询了解类的继承关系对我们的学习会有很大的帮助 xff0c 而网上流传的多是较老版本的 xff0c 并且是jpg格式 xff0c 不便于学习使用 xff0c 所以我就花了一些时间整理了这一套Qt类继承图 xf
  • Qt6.3类继承关系图(全网最全)

    一 概述 在学习Qt的时候快速的查询了解类的继承关系对我们的学习会有很大的帮助 xff0c 而网上流传的多是较老版本的 xff0c 并且是jpg格式 xff0c 不便于学习使用 xff0c 所以我就花了一些时间整理了这一套Qt类继承图 xf
  • DSPF28335 SCI FIFO串口通讯

    在工作过程中 xff0c 通过串口进行上位机与控制器之间进行数据的传输 xff0c 标准的串口通讯容易造成数据的丢失和内存堆满的现象 xff0c 便使用SCI中的FIFO对数据进行中断处理 一 串口通信基本知识 F28335 处理器共有 3
  • 树莓派4B:控制步进电机

    记录一下驱动两相四线步进电机的过程 文章目录 准备阶段接线阶段树莓派python程序 准备阶段 准备以下物品 xff0c 淘宝都可以买到 57步进电机 xff08 两相四线 xff09 电源开关 xff08 220v转24v xff0c 3
  • 2019全国大学生电子设计竞赛(电赛)回忆录

    我给大家整理了历年电赛的题目和材料清单 xff0c 大家可以对比着看 关注微信公众号 Opencv视觉实践 xff0c 回复 电赛资料 领取 电赛是我一进大学就听学长们无数此提起的一场四天三夜的盛会 xff0c 我也自大一开始便期待着 xf
  • 【网络】HTTP中的GET方法和POST方法

    1 GET方法 xff1a 获取资源 GET方法用来请求访问已被URL识别的资源 指定的资源经服务器端接续后返回内容 也就是说 xff0c 如果请求的资源是文本 xff0c 那就保持原样返回 xff1b 如果像是CGI xff08 Conm
  • 类的6个默认成员函数

    类的成员函数 1 构造函数2 析构函数3 拷贝构造函数4 深浅拷贝5 运算符重载赋值运算符重载的特性 xff1a 1 构造函数 xff08 构造函数的调用发生在对象的创建过程中 xff0c 所以会牵扯到this指针传对象的地址问题 另外创建
  • 通过onvif抓取海康摄像头图片,以及解决海康摄像头抓取图片需要验证问题,实现摄像头一段时间换一个地方的同时抓取一张图片。

    1 实现海康摄像头的图片的抓取 思路 xff1a 1 首先获取图片的url xff0c 2通过java实现图片的下载 1 使用onvif获取图片的url 首先获取OnvifDevice的对象 OnvifDevice od 61 new On
  • 超详细电烙铁如何使用?

    电烙铁是电子硬件工程师的一个必备工具了 它主要用来焊接一些电子元器件到PCB主板上 xff0c 用来做一些维修 xff0c 验证 xff0c 分析等等 那这么一个家伙要如何使用呢 xff1f 首先来看一个电烙铁的基本外观 xff1a 它一般
  • Makefile和cmake学习

    一 Makefile 一 什么是Makefile 1 Makefile 可以简单的认为是一个工程文件的编译规则 xff0c 描述了整个工程的编译和链接等规则 其中包含了那些文件需要编译 xff0c 那些文件不需要编译 xff0c 那些文件需

随机推荐

  • Ros下编译某功能包时出现很多“未定义的引用”的解决方法(本人版本是ubuntu18.04)

    问题描述 xff1a 在工作空间下编译某功能包时出现 在函数 中未被定义等问题 xff0c 如图所示 解决方案 xff1a 第一步 xff1a 查看自己的gcc版本和g 43 43 版本是否一致 xff0c 打开终端输入以下命令 gcc v
  • STM32—串口通讯详解

    串口通讯目录 物理层协议层USART简介开发板与上位机的连接代码讲解 xff1a 一 初始化结构体二 NVIC配置中断优先级三 USART配置函数讲解四 传输数据的函数 xff1a 1 发送一个字节2 发送字符串3 重定向printf函数发
  • 二进制数的算术运算和逻辑运算

    算术运算 二进制数加法采用逢二进一 减法采用借一作二 十六进制数加法采用逢十六进一 减法采用借一作十六 1位八进制可以写成3位二进制 xff0c 因为3位二进制可以表示十进制范围0 7 xff0c 也就是1位八进制的表示范围 1位十六进制可
  • STM32串口接收一帧数据方法(处理一帧数据中所需内容)

    stm32支持接受单个数据或者一帧数据 xff0c 若配置单个数据接收中断的话 xff0c 会出现接收包丢包 xff0c 数据不完整的情况 xff01 因此在stm32的串口中断中 xff0c 还有一个IDLE中断 xff0c 用来产生串口
  • 使用火狐拓展插件以及运行脚本的超详细方法

    1 首先我们需要下载火狐浏览器 火狐浏览器官网 xff1a 火狐浏览器 打开后默认页面 xff1a 2 如图所示点击右上角打开菜单 xff0c 然后点击附加组件 xff1a 3 进入该页面后在搜索框输入 xff1a tampermonkey
  • static关键字在c/c++中的作用

    static关键字在c c 43 43 中的作用 static在c语言中有三个作用 xff1a 修饰函数 修饰局部变量 修饰全局变量 被static修饰的全局变量被称之为静态全局变量 静态全局变量和全局变量在存储方式上是一致的 xff0c
  • licurl API

    这个文档是小编在curl官网上使用谷歌翻译翻译的 xff0c 详细信息看官网 curl 描述 这是关于C程序中如何使用libcurl的简单概述 xff0c libcurl程序的使用需要通过以下5个方面libcurl easy libcurl
  • C语言:最大公约数详解

    C语言 xff1a 最大公约数详解 Hello xff01 小伙伴们大家好 xff0c 几天不见了 xff0c 今天给大家分享一下C语言中求最大公约数的三种方法 在开始分享前 xff0c 让我们先来看看什么是最大公约数 xff1a 最大公约
  • Java:遍历数组的三种方法

    1 for循环遍历数组 用for循环遍历数组是很常见的一种方法 xff0c Java语言中通过数组的length属性可获得数组的长度 span class token keyword package span demo span class
  • Linux:进程创建详解

    Linux xff1a 进程创建详解 进程创建1 fork函数写时拷贝调用失败的原因 2 vfork函数 进程终止正常退出的三种方法 exit和exit的区别 进程创建 现在我们已经知道进程的概念以及怎样创建一个进程 xff0c 接下来我们
  • Linux:简单理解文件系统内附Linux内核设计与实现PDF下载地址

    简单理解文件系统 文件系统ext2文件系统文件的存储文件的获取 文件系统 文件存储的方式有线性存储和离散存储两种 xff0c 线性存储可能会导致磁盘的利用率降低 xff0c 产生磁盘碎片 xff0c 离散存储方式会提高程序对磁盘的利用率 x
  • Linux:网络编程——UDP编程的前期准备

    Linux xff1a 网络编程 UDP编程的前期准备 字节序TCP与UDP的区别UDP编程的流程1 创建套接字创建套接字的意义 2 绑定地址信息 xff08 1 xff09 绑定ip和端口 xff08 2 xff09 函数 3 UDP发送
  • Xshell连接虚拟机时报错Could not connect to ‘192.168.115.133‘ (port 22): Connection failed.

    Xshell连接虚拟机时报错Could not connect to 192 168 115 133 port 22 Connection failed 今天突然想把拨号连接换成宽带连接 结果问题就来了 用下Xshell连接虚拟机的时候一直
  • Linux:简单三步,教你解决ping:www.baidu.com:未知的名称或者服务

    Linux xff1a 简单三步 xff0c 教你解决ping www baidu com 未知的名称或者服务 1 在VMware Workstation中点开编辑 xff0c 找到虚拟网络编辑器2 直接点击更改设置3 点击还原默认设置 x
  • C++:从结构体开始理解this指针

    C 43 43 xff1a 从结构体开始理解this指针 span class token macro property span class token directive keyword include span span class
  • 原来直接插入排序这么简单(附完整代码)

    原来插入排序这么简单 附完整代码 xff09 基本思想带哨兵位的插入排序二分插入排序完整代码 基本思想 做一件是之前我们总是要先知道我们做这件的核心思想 xff0c 这样会让我们做事的效率得到有效的提高 xff1b 现在我们来看看插入排序算
  • 一张图带你了解c/c++的内存分布

    c c 43 43 的内存分布 对照这些代码查看对应内存分布 xff1a span class token keyword int span globalVar span class token operator 61 span span
  • 用一个例子理解希尔排序

    用一个例子理解希尔排序 思想代码 思想 希尔排序是把序列按下标的一定增量分组 xff0c 对每组使用直接插入排序算法排序 xff1b 随着增量的逐渐减少 xff0c 每组包含的关键词越来越多 xff0c 当增量减至1时 xff0c 整个序列
  • c++ pi

    C 43 43 中表示pi的方法有两种 xff08 1 xff09 math库中利用arctan函数算出 span class token function tan span span class token punctuation spa
  • 【非数值数据的编码】西文字符和汉字的编码表示 汉字国标码、机内码详细理解

    西文字符和汉字的编码表示 西文字符概念ASCII码表特点 西文字符特点西文字符表示 xff08 常用编码为7位ASCII码 xff09 西文字符操作 汉字字符编码形式输入码字符集与汉字内码汉字的区位码汉字的国标码汉字内码 汉字的字模点阵码和