当前位置: 首页 > news >正文

【计算机基础知识】字符的编码表示

在这里插入图片描述

欢迎来到我的:世界

希望作者的文章对你有所帮助,有不足的地方还请指正,大家一起学习交流 !


目录

  • 前言
  • 1.西文字符编码
  • 2.中文字符编码
    • 汉字输入码
    • 汉字国标码
    • 汉字机内码
    • 汉字字形码
  • 总结

前言

计算机处理的数据中,除了数值型数据以外,还有字符、图形等的非数值型数据。其中字符是日常生活中使用最频繁的非数值数据,它包括大小写英文、符号以及汉字等。由于计算机只能识别二进制编码,为了能够对字符进行识别和处理,因此要对其进行二进制编码表示;


1.西文字符编码

对西文字符编码最常用的是ASCII(美国信息交换标准代码)字符编码,该编码标准已经被国际标准化组织(ISO)指定为国际标准,是国际上使用最广泛的一种字符编码。ASCII码有两个版本:标准ASCII码和扩展ASCII码。

标准ASCII码是一个用7位二进制数来编码,用8位二进制数来表示的编码方式,其最高位为0,右边7位二进制位总共可以编出2^7=128个码。每个码表示一个字符,一共可以表示128个符号。
扩展ASCII码后128个编码称为扩展ASCII码。许多基于x86的系统都支持使用扩展(或“高”)ASCII。扩展ASCII 码允许将每个字符的第8 位用于确定附加的128 个特殊符号字符、外来语字母和图形符号。
标准ASCII是7位编码,存储时占8位,最高位是0,共可以表示128(2的7次方)个字符。
扩展ASCII是8位编码,刚好1个字节,最高位可以是0也可以是1,共可以表示256(2的8次方)个字符。

在这里插入图片描述

标准ASCII码:
在这里插入图片描述
表里的128个字符中,0~31及127(共33个)是控制字符或通信专用字符,为不可显示字符;其余字符为普通的字符(可显示字符);
常见ASCII码的大小规则:数字< 大写字母 < 小写字母。

2.中文字符编码

与英文字符一样,中文在计算机系统中也要使用特定的二进制符号来表示。通过键盘输入汉字时实际上是输入汉字的编码信息,这种编码称为汉字的输入码。计算机为了存储、处理汉字,必须将汉字的外部码换成汉字的内部码。为了将汉字以点阵的形式输出,还要将汉字的内部码转换为汉字的字形码。此外,在计算机与其他系统或设备进行信息、数据交流时还要用到国际码(交换码)。汉字编码的转换过程如图:
在这里插入图片描述

汉字输入码

汉字输入码是一种用计算机标准键盘上按键的不同排列组合来对汉字的输人进行的编码,也称为汉字的外部码(外码)。目前汉字输人编码法的研究和发展迅速,已有上百种汉字输人编码法。一个好的编码法应满足以下要求:编码短,可以减少击键的次数:码少,可以实现盲打;好学好记,便于学习和掌握,但现在还没有一种符合上述全部要求的汉字输入编码方法。
目前常用的汉宇编码主要分为以下三类:

音码: 主要是以汉语拼音为基础的编码方案,如全拼、双拼、简拼和智能 ABC 等。目前比较流行的拼音输人法有搜狗拼音、百度拼音等。音码的重码率高,单字输人速度慢,但容易掌握。
形码: 形码主要是根据汉字的特点,按汉字固有的形状,把汉字先拆分成部首,然后进行组合,代表有五笔字型法郑码输入法等。形码重码较少,单字输入速度快,但学习和掌握较困难。
数字编码: 常用的是区位码,用数字串输入一个汉字。区位码是将国家标准局公布的6763个两级汉字分为94个区,每个区分为94位,实际上是吧汉字集排列成二维数组的形式,行为区,列为位,每个汉字在数组中的下标就是区位码。区码和位码各用两位十进制数字表示,因此输入一个汉字需要按键4次。例如,“中”字位于第54区48位,区位码为5448。数字编码的优点是无重码,与内部编码的转换比较方便,缺点就是代码很难记;

为了提高输入速度,输入方法现已经走向了智能化,比如:语音识别输入、手写输入或扫描输入。但不管是哪种输入法,都是操作者向计算机输入汉字的手段;

汉字国标码

国标码是我国1980年发布的《信息交换用汉字编码字符集——基本集》(代号为GB2312-80),是中文信息处理的国家标准,也称为汉字交换码,简称GB。国标码对汉字进行编码的时候占用两个字节。考虑与ASCII编码的关系,国标码使用了每个字节的低7位。据统计,GB2312编码共收录汉字6763个和682个图形符号,把最常见的6763个汉字分为两级:一级汉字有3755个,二级汉字有3008个,按照偏旁部首排序。
区位码与国标码之间的关系:
区位码转换为国标码要将一个汉字的十进制区号和十进制位号分别转换为十六进制,然后再分别加上20H,就成为次汉字的国标码。
公式:汉字国标码=汉字区位码+2020H=汉字区位码+A0A0H

小知识:

不止只有GB2312编码,还有很多别的编码,比如:GBK、GB18030、BIG5、Unicode等等,咱们挑两个说一说:
GBK编码:全称《汉字内码扩展规范》1995年制订,也是和GB2312编码一样两个字节表示一个汉字,总共收录了21886个符号,包括了21003个汉字和883个其他符号;
BIG5编码:是专用于港澳地区使用的繁体字编码方案,也是两个字节表示一个汉字,总计有13053个繁体字(包括5401个常用字、7652个次常用字)、7个扩充字、以及808个各式字符,总共13868个字符;

汉字机内码

汉字在计算机内部使用的编码就是内码,也称为机内码。所以真正的计算机内部用来存储和处理和存储汉字信息的代码;每个汉字的内码占用两个字节,并且每个字节的最高位为1,这是为了避免汉字的内码与英文字符编码(ASCII码)发生冲突,容易区分汉字编码和英文字符编码,同时为了用尽可能的存储空间来表示尽可能多的汉字而做出的决定;
机内码与国标码的关系:
国标码的高字节、低字节分别+80H,就可以得到机内码;
汉字机内码=汉字国标码+8080H

汉字字形码

汉字字形码又叫做汉字字模或汉字输入码,用于汉字在显示屏或打印机输出。汉字字形码通常有两种表示方式:点阵式矢量式

点阵式表示字形时,分为 16X16 点阵、24X24 点阵、32X32 点阵、48X48 点阵等,点阵越大,描述的字形越细致美观,质量越高,所占存储空间也越大。在计算机中,8 个二进制位组成一个字节,它是度量空间的基本单位,因此,一个16X16点阵的字形码需要 16X16/8-32字节的存储空间,由此可得:

点阵字形码所占字节数=点阵行数X点阵列数/8

矢量式是描述汉字字形的轮廓特征,当要输出汉字时,字形和大小与计算机的分辨率无关,可以产生高质量的汉字输出,并节省存储空间。用矢量式记录的字体可以任意放缩甚至变形,而不用担心会出现锯齿状边缘。

所有汉字的输出码构成了汉字字形库,简称字库。

点阵字体与矢量字体的区别:
在这里插入图片描述


总结


到了最后:感谢支持

我还想告诉你的是:
------------对过程全力以赴,对结果淡然处之
也是对我自己讲的

相关文章:

【计算机基础知识】字符的编码表示

欢迎来到我的&#xff1a;世界 希望作者的文章对你有所帮助&#xff0c;有不足的地方还请指正&#xff0c;大家一起学习交流 ! 目录 前言1.西文字符编码2.中文字符编码汉字输入码汉字国标码汉字机内码汉字字形码 总结 前言 计算机处理的数据中&#xff0c;除了数值型数据以外…...

【面试题精讲】Java字符型常量和字符串常量的区别?

“ 有的时候博客内容会有变动&#xff0c;首发博客是最新的&#xff0c;其他博客地址可能会未同步,认准https://blog.zysicyj.top ” 首发博客地址[1] 面试题手册[2] 系列文章地址[3] Java 中的字符型常量和字符串常量是两种不同的数据类型。 字符型常量&#xff1a;字符型常量…...

【Vue面试题六】为什么Vue中的 v-if 和 v-for 不建议一起用?

文章底部有个人公众号&#xff1a;热爱技术的小郑。主要分享开发知识、学习资料、毕业设计指导等。有兴趣的可以关注一下。为何分享&#xff1f; 踩过的坑没必要让别人在再踩&#xff0c;自己复盘也能加深记忆。利己利人、所谓双赢。 面试官&#xff1a;v-if和v-for的优先级是什…...

leetCode 674. 最长连续递增序列 动态规划 / 贪心策略

674. 最长连续递增序列 - 力扣&#xff08;LeetCode&#xff09; 给定一个未经排序的整数数组&#xff0c;找到最长且 连续递增的子序列&#xff0c;并返回该序列的长度。 连续递增的子序列 可以由两个下标 l 和 r&#xff08;l < r&#xff09;确定&#xff0c;如果对于每…...

数据中台实战(11)-数据中台的数据安全解决方案

0 微盟删库跑路 除了快、准和省&#xff0c;数据中台须安全&#xff0c;避免“微盟删库跑路”。 2020年2月23日19点&#xff0c;国内最大精准营销服务商微盟出现大面积系统故障&#xff0c;旗下300万商户线上业务全停&#xff0c;商铺后台所有数据被清。始作俑者是一位运维&a…...

林沛满-TCP之在途字节数

本文整理自&#xff1a;《Wireshark网络分析的艺术 第1版》 作者&#xff1a;林沛满 著 出版时间&#xff1a;2016-02 我一直谨记斯蒂芬霍金的金玉良言—每写一道数学公式就会失去一半读者。不过为了深度分析网络包&#xff0c;有时候是不得不计算的&#xff0c;好在小学一年级…...

HTTPS 加密工作过程

引言 HTTP 协议内容都是按照文本的方式明文传输的&#xff0c;这就导致在传输过程中出现一些被篡改的情况。例如臭名昭著的运营商劫持。显然&#xff0c; 明文传输是比较危险的事情&#xff0c;为此引入 HTTPS &#xff0c;HTTPS 就是在 HTTP 的基础上进行了加密, 进一步的来保…...

校招秋招,性格和职业有关系吗?

企业在招聘应届毕业生时不再局限于普通的面试或者笔试&#xff0c;在互联网时代&#xff0c;为了能够更好的匹配需要的优质人才&#xff0c;企业会通过各种测试来提高招聘的准确率以及成功率。也许以前很多人都听说过性格和职业是有一定关系的&#xff0c;但是如何确定自己的性…...

网络和系统操作命令

目录 ping&#xff1a;用于检测网络是否通畅&#xff0c;以及网络时延情况。ipconfig&#xff1a;查看计算机的IP参数配置信息&#xff0c;如IP地址、默认网关、子网掩码等信息。netstat&#xff1a;显示协议统计信息和当前TCP/IP网络连接。tasklist&#xff1a;显示当前运行的…...

刷穿力扣(1~30)

更好的阅读体验 \huge{\color{red}{更好的阅读体验}} 更好的阅读体验 1. 两数之和 哈希表遍历数组&#xff0c;同时用 HashMap 维护已出现过的数及其下标若当前的数 nums[i] 满足 target - nums[i] 曾经出现过&#xff0c;则直接返回否则将其加入到哈希表中。 class Solution …...

栈和队列的基本操作

&#xff08;一&#xff09;实验类型&#xff1a;设计性 &#xff08;二&#xff09;实验目的&#xff1a; 1&#xff0e;掌握栈和队列的抽象数据类型。 2&#xff0e;掌握实现栈和队列的各种操作的算法。 3&#xff0e;理解栈与递归的关系。 4. 掌握队列的链式存贮结构及基…...

变压器绕组断股往往导致直流电阻不平衡率超标

变压器绕组断股往往导致直流电阻不平衡率超标&#xff0c; 例如&#xff0c; 某电厂 SFPSL—12000/220 型主变压器&#xff0c; 色谱分析结果发现总烃含量急剧增长&#xff0c; 测直流电阻&#xff0c; 其结果是高、 低压侧与制造厂及历年的数值相比较无异常&#xff0c; 但中压…...

stack和queque

1.stack 1.1定义 T 是容器内的数据类型&#xff1b; Container是数据类型的容器适配器 vector和list和stack的区别 1.2 stack的功能 注意这里没有迭代器&#xff1b;原因stack是先进后出的规律&#xff1b;这就规定该容器不可以随机访问&#xff1b; 2. queue...

信息学 学习/复习 抽签器(附源码)

问你一个问题&#xff0c;你考试前怎么复习呀&#xff1f; 效果图 以下是源代码&#xff0c;可自行修改 [C] #include<bits/stdc.h> #include<windows.h> using namespace std; vector<string>item; int main(void) {item.push_back("Manacher"…...

基于LADRC自抗扰控制的VSG三相逆变器预同步并网控制策略(Simulink仿真实现)

&#x1f4a5;&#x1f4a5;&#x1f49e;&#x1f49e;欢迎来到本博客❤️❤️&#x1f4a5;&#x1f4a5; &#x1f3c6;博主优势&#xff1a;&#x1f31e;&#x1f31e;&#x1f31e;博客内容尽量做到思维缜密&#xff0c;逻辑清晰&#xff0c;为了方便读者。 ⛳️座右铭&a…...

[0xGame 2023] week1

整理一下&#xff0c;昨天该第二周了。今天应该9点结束提交&#xff0c;等我写完就到了。 PWN 找不到且不对劲的flag 第1题是个nc测试&#xff0c;但也不完全是&#xff0c;因为flag在隐含目录里 高端的syscall 程序使用了危险函数&#xff0c;并且没有canary阻止&#xff0…...

Matlab矩阵——矩阵行列互换

问题&#xff1a;如何将 1*n 的矩阵转换为指定 M*N 的矩阵&#xff0c;或者将 M*N 的矩阵转换为 1*n 的矩阵&#xff1f; 处理方法&#xff1a;使用 reshape 函数进行矩阵的行列互换 分两种情况如下&#xff1a; 一、将 1*n 的矩阵转换为指定 M*N 的矩阵 假如有4个坐标值&a…...

OpenMesh 网格面片随机赋色

文章目录 一、简介二、实现代码三、实现效果一、简介 OpenMesh中的赋色方式与Easy3D很是类似,它统一有一个属性数组来进行管理,我们在进行赋色等操作时,必须要首先添加该属性才能进行使用,这里也进行记录一下(法向量等特征也是类似的操作)。 二、实现代码 #define _USE_…...

SpringSecurity源码学习一:过滤器执行原理

目录 1. web过滤器Filter1.1 filter核心类1.2 GenericFilterBean1.3 DelegatingFilterProxy1.3.1 原理1.3.2 DelegatingFilterProxy源码 2. FilterChainProxy源码学习2.1 源码2.1.1 doFilterInternal方法源码2.1.1.1 getFilters()方法源码2.1.1.2 VirtualFilterChain方法源码 3…...

8.2 JUC - 4.Semaphore

目录 一、是什么&#xff1f;二、简单使用三、semaphore应用四、Semaphore原理 一、是什么&#xff1f; Semaphore&#xff1a;信号量&#xff0c;用来限制能同时访问共享资源的线程上限 二、简单使用 public class TestSemaphore {public static void main(String[] args) …...

React 第五十五节 Router 中 useAsyncError的使用详解

前言 useAsyncError 是 React Router v6.4 引入的一个钩子&#xff0c;用于处理异步操作&#xff08;如数据加载&#xff09;中的错误。下面我将详细解释其用途并提供代码示例。 一、useAsyncError 用途 处理异步错误&#xff1a;捕获在 loader 或 action 中发生的异步错误替…...

shell脚本--常见案例

1、自动备份文件或目录 2、批量重命名文件 3、查找并删除指定名称的文件&#xff1a; 4、批量删除文件 5、查找并替换文件内容 6、批量创建文件 7、创建文件夹并移动文件 8、在文件夹中查找文件...

sqlserver 根据指定字符 解析拼接字符串

DECLARE LotNo NVARCHAR(50)A,B,C DECLARE xml XML ( SELECT <x> REPLACE(LotNo, ,, </x><x>) </x> ) DECLARE ErrorCode NVARCHAR(50) -- 提取 XML 中的值 SELECT value x.value(., VARCHAR(MAX))…...

GC1808高性能24位立体声音频ADC芯片解析

1. 芯片概述 GC1808是一款24位立体声音频模数转换器&#xff08;ADC&#xff09;&#xff0c;支持8kHz~96kHz采样率&#xff0c;集成Δ-Σ调制器、数字抗混叠滤波器和高通滤波器&#xff0c;适用于高保真音频采集场景。 2. 核心特性 高精度&#xff1a;24位分辨率&#xff0c…...

CVE-2020-17519源码分析与漏洞复现(Flink 任意文件读取)

漏洞概览 漏洞名称&#xff1a;Apache Flink REST API 任意文件读取漏洞CVE编号&#xff1a;CVE-2020-17519CVSS评分&#xff1a;7.5影响版本&#xff1a;Apache Flink 1.11.0、1.11.1、1.11.2修复版本&#xff1a;≥ 1.11.3 或 ≥ 1.12.0漏洞类型&#xff1a;路径遍历&#x…...

Proxmox Mail Gateway安装指南:从零开始配置高效邮件过滤系统

&#x1f49d;&#x1f49d;&#x1f49d;欢迎莅临我的博客&#xff0c;很高兴能够在这里和您见面&#xff01;希望您在这里可以感受到一份轻松愉快的氛围&#xff0c;不仅可以获得有趣的内容和知识&#xff0c;也可以畅所欲言、分享您的想法和见解。 推荐&#xff1a;「storms…...

tomcat指定使用的jdk版本

说明 有时候需要对tomcat配置指定的jdk版本号&#xff0c;此时&#xff0c;我们可以通过以下方式进行配置 设置方式 找到tomcat的bin目录中的setclasspath.bat。如果是linux系统则是setclasspath.sh set JAVA_HOMEC:\Program Files\Java\jdk8 set JRE_HOMEC:\Program Files…...

go 里面的指针

指针 在 Go 中&#xff0c;指针&#xff08;pointer&#xff09;是一个变量的内存地址&#xff0c;就像 C 语言那样&#xff1a; a : 10 p : &a // p 是一个指向 a 的指针 fmt.Println(*p) // 输出 10&#xff0c;通过指针解引用• &a 表示获取变量 a 的地址 p 表示…...

【把数组变成一棵树】有序数组秒变平衡BST,原来可以这么优雅!

【把数组变成一棵树】有序数组秒变平衡BST,原来可以这么优雅! 🌱 前言:一棵树的浪漫,从数组开始说起 程序员的世界里,数组是最常见的基本结构之一,几乎每种语言、每种算法都少不了它。可你有没有想过,一组看似“线性排列”的有序数组,竟然可以**“长”成一棵平衡的二…...

麒麟系统使用-进行.NET开发

文章目录 前言一、搭建dotnet环境1.获取相关资源2.配置dotnet 二、使用dotnet三、其他说明总结 前言 麒麟系统的内核是基于linux的&#xff0c;如果需要进行.NET开发&#xff0c;则需要安装特定的应用。由于NET Framework 是仅适用于 Windows 版本的 .NET&#xff0c;所以要进…...