GBK编码的理解

news2025/1/19 17:16:21

1、我们学程序的时候,所熟知的ASCII码,就是一种编码方式

计算机底层,就只认识0和1.

举个例子,以3bit为例:

所以,如果是000的话,可以对应数字0

如果是001的话,可以对应数字1

。。。

如果是111的话,可以对应数字7。

老外才多少个字符,总共才26个英文字母,加上大小写,才52个。

后来有扩展了一些其他字符,如+-*/ 空格之类的,又扩展了一些控制字符和不可见字符,如CTRL键,DEL键,空格键等。

总之,1个字节,8bit,有256种编码方式,完全可以对应这么多字符。

所以ASCII码字符的所谓编码方式,其实就是数值跟字符建立一个一一映射的关系。(这个一一映射就是高中里面学到的函数)

然后计算机解析到这个这个数值,就会在屏幕上画出对应的点阵字母——所有在屏幕上显示的东西,都是点阵显示的。因为像素比较大,人眼看起来还是比较连续的,但是如果放大的话,可以看出来还是歪歪曲曲的。

如上图,B这个字母就可以用8*12的点阵来显示,当读取到B的ASCII码值的时候,就调出来显示即可。这就完成了编码。

2、ASCII初始字符就127个。后来又扩展了,扩展了一些希腊字母。

整个欧洲的知识体系就是建立在希腊字母表上面的。

3、但是中国不一样,中国的语言体系,是另一套体系,中国的文字,不是字母,而是象形文字。

很明显,以8bit一个字节来编码汉字,很明显不够。中国常用的汉字有6000多个。

那就用两个字节16bit来编码。16bit最多是65536种可能,完全可以覆盖常用的汉字(当然,如果遇到生僻字怎么办?)

用16bit来编码,比如,用16进制数字,0xBABA,可以编码成汉字——“汉”

当计算机识别到16进制数字0xBABA,就可以采用一个16*12的点阵来显示汉字“汉”。这样就完成了编码。

这种编码方式,取了一个名字,叫做GBK编码。也叫国标编码。

GBK编码表,类似ASCII码表,很明显,GBK编码表比ASCII表更复杂,排列可能性更多。

GBK编码表,可以查看下面的连接:

GBK 编码范围, GBK 编码表

每个编码表前面有一个字节,如上图所示,那么多字节显示在BA这一个模块里面。如果要查找汉字“汉”,那么汉字在BA模块里面,在第B行,第A列,所以“汉”的编码就是——BABA(16进制的数,0xBABA)

同理,如果要查看汉字“花”的GBK编码值,那么查找到花在“BB”方块内,在第A行第8列,所以“花”——BBA8

这就完成了GBK编码汉字的功能。

GBK编码范围:8140-FEFE

所有的汉字都是放在一个个的方块里面的,这个方块的编码是在81~FE范围的,行是4~F行,列是0~F列,但是每个方块里面最后一个F行F列都没有被编码使用。所以每个方块的编码范围又是从40~FE。这样就完成了所有汉字的编码。

 GBK编码是对之前老的编码GB2312的扩展。所以猜测,GBK编码是为了解决一些偏僻字的问题,进行了扩展。两万多个汉字,足够用了。

我们国家GBK的编码,不仅仅编码了中文,还编码了日文,还编码了希腊字母。这说明我们国家在制定GBK编码的时候其实就考虑到向世界学习的态度。

当然这涉及到一个计算机世界话语权的问题。因为我们国家前期在计算机领域的发展相较于美国比较慢,所以我们国家也没主导Unicode统一码的标准制定。

从上面的GBK编码表中可以看出,我们国家的工作人员,是有这个雄心壮志,想制定一套兼容天下编码字符的一个表的

 

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/106200.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

非零基础自学Golang 第13章 并发与通道 13.4 select 13.5 小结

非零基础自学Golang 文章目录非零基础自学Golang第13章 并发与通道13.4 select13.4.1 select作用13.4.2 超时13.4.3 死锁13.5 小结第13章 并发与通道 13.4 select Go语言中,通过关键字select可以监听channel上的数据流动。 select的用法和switch非常相似&#xf…

Python中的基本数据类型

文章目录前言一、字符串类型字符串表示方法二、数字类型1. 整数2.浮点数3.复数三、布尔类型总结前言 我们一般在电脑中存储的数据有多种数据类型。比如下图这张员工工资表: 表中员工姓名可以用字符串类型存储(比如"李世民"、“侯君集”&#…

Hadoop学习----HDFS

文件系统 文件系统:是一种存储和组织数据的方法,实现数据的存储、分级组织、访问和获取等操作,使得用户对文件访问和查找变得容易。文件系统使用树形目录的抽象逻辑概念代替了硬盘等物理设备使用数据块的概念,用户不必关心数据底…

实验三 进程的互斥与同步

文章目录一、 实验目的二、 实验原理三、实验内容四、我的代码内容和现象1、philosopher12、philosopher2这个程序不会发生死锁,因为五、课后习题:1.什么是死锁?产生死锁的原因和必要条件是什么?2.实验中给出的伪代码流程&#xf…

Problem Set 3

1Lagrange Duality Formulate the Lagrange dual problem of the following linear programming prob-lem min cT rs.t.Ax 二b where a ∈R is variable,c ∈ R",A ∈Rkn, b ∈ Rk. 解:设拉格朗日函数为L(x,λ)cTxλT(Ax−b)\mathcal{L}(x,\lambda)…

第十七章 webpack5项目搭建Vue-Cli(开发模式)

step1–创建项目目录 创建一个目录用来搭建vue-cli的项目 mkdir vue-cli cd vue-clistep2–初始化项目 初始化项目,生成一个package.json文件 npm init -ystep3–编写vue-cli的开发模式配置 新建目录 / |-config | |--webpack.dev.js | |--webpack.prod.js我…

USB TO SPI(上海同旺电子)调试器调试25LC020A

所需设备: 1、USB TO SPI(上海同旺电子); 2、25LC020A 2Kb 2.5V SPI Serial EEPROM; Microchip 25LC020A 是一款 2 Kb 串行 EEPROM,采用行业标准串行外设接口 (SPI) 兼容串行总线。 该器件被组织为一个 256 x 8 位块,并针对消…

Java安全--CC7

在学CC7的时候我有这么几个疑问 1.为什么要两个LazyMap 2.hashCode那一步怎么计算的 3.为什么要remove yy 4.为什么put两个 我们可以先看一下CC7的链子是怎么走的: 其实分析链子还是从命令执行走到readObject比较好理解,虽然比较麻烦,比较繁琐&#xff0…

机器人机械臂运动学——逆运动学解算

1.情景概述 假设最一般的情况,我们的机械臂有六个自由度,那么从初始状态想要变化到目标的状态,一般情况下我们至少需要进行六次的变换,而这六次变换的矩阵参数隐含在整体的变换矩阵中。 根据之前的知识,左上角的3*3代表…

m基于隐马尔科夫模型(HMM)的手机用户行为预测(MMUB)算法matlab仿真

目录 1.算法描述 2.仿真效果预览 3.MATLAB核心程序 4.完整MATLAB 1.算法描述 隐马尔可夫模型(Hidden Markov Model,HMM)是一种统计模型,广泛应用在语音识别,词性自动标注,音字转换,概率文法…

R语言中的Nelson-Siegel模型在汇率预测的应用

这篇文章的目的是指导读者逐步使用R编程语言实现Nelson-Siegel模型的步骤。 最近我们被客户要求撰写关于Nelson-Siegel模型的研究报告,包括一些图形和统计输出。 您可能已经知道,估计利率期限结构是任何资产定价的关键,因此对投资者和政策制…

5G无线技术基础自学系列 | 基于Massive MIMO的场景化波束优化

素材来源:《5G无线网络规划与优化》 一边学习一边整理内容,并与大家分享,侵权即删,谢谢支持! 附上汇总贴:5G无线技术基础自学系列 | 汇总_COCOgsta的博客-CSDN博客 前面内容提到, 5G中引入了M…

机器人机械臂运动学——运动学正向解算

本博客内容参考台湾大学_林沛群教授_机器人学的课程内容 1.相对运动关系的描述方法 假设有现在这样的一个情景,从左到右有三个转轴,转轴本身可以转动,也可以沿着轴线上下平动,那么我们如何描述其中的运动学关系及其位置关系呢&am…

Linux Red Hat 8.0 cat、cut、sed、tail命令

1.cat: 在终端设备上显示文件内容 常用选项: -n 显示行数(空格有编号) -b 显示行数(空格没有编号) 命令格式:cat 选项 文件 特殊用法tac:倒着显示内容 配合重定向使用 查看 test1…

DPDK 多进程

DPDK库里是支持多进程和多线程,本文主要总结多进程的相关的操作。 DPDK多进程使用的关键启动参数: --proc-type:指定一个dpdk进程是主进程还是副进程(参数值就用上面的primary或是secondary,或者是auto)-…

【Bio】基础生物学 - 五个重要官能团 five important functional group

文章目录1. 羟qiǎng基(hydroxyl)2. 羧suō基(carboxyl)3. 氨基(amino)4. 磷酸盐(phosphate)5. 巯基(sulfhydryl)1. 羟qiǎng基(hydroxyl&#xf…

最新进展 | Android 自定义机器学习堆栈

作者 / Android 机器学习平台团队相较于服务器端机器学习 (ML),设备端机器学习有其独特的优势,如支持离线使用、延迟更低、隐私性更高和推理成本更低,因此 Android 中设备端机器学习的使用迅速增长。在构建基于设备端 ML 的功能时&#xff0c…

Android基于perfetto分析native内存泄露

官方文档(可在Chome直接翻译) https://perfetto.dev/docs/data-sources/native-heap-profiler 示例 raw-trace 资源地址 https://download.csdn.net/download/CSqingchen/87321798 本文示例是windows,这里使用了python工具,在Linux和mac同样适用 首先安装…

胡凡 《算法笔记》 上机实战训练指南 3.1 简单模拟

胡凡 《算法笔记》 上机实战训练指南 3.1 持续更新中 , 菜鸡的刷题笔记… 大学到现在了还没咋好好刷过题,该push自己了… 文章目录胡凡 《算法笔记》 上机实战训练指南 3.13.1 简单模拟【PAT B1001】害死人不偿命的(3n1)猜想【PAT B1032】挖掘…

spring扩展之基于HandlerMapping实现接口灰度发布的demo

背景 面试经常被问到,你了解spring源码吗?有基于spring做过什么扩展吗?除了PropertyPlaceholderConfigurer处理占位符(被说烂了)还有其他的吗? 看了springmvc的源码,有了一个新的案例可讲(吹) 基于HandlerMapping实现…