字符编码

news/2025/3/31 1:47:12/文章来源:https://www.cnblogs.com/citStudy/p/18795051

1、什么是字符

字符代表一个书写符号或印刷符号,是人类语言的视觉表现形式,是构成文字的基本元素。
字符是信息的基本单位之一,它们是人类记录和传递信息的重要载体工具。从古至今,人类使用各种符号来记录信息,从甲骨文到象形文字,从汉字到拼音文字,字符一直是人类文明的重要,组成部分。

2、什么是编码

计算机只能处理二进制数据(0 和 1),而字符是人类能够理解的符号。为了让计算机能够处理、存储和传输字符,就需要一种规则将字符转换为计算机能够识别的二进制形式储存起来,这种规则就是编码,或理解为给字符进行二进数编号。反之,将计算机底层的二进制码转换成屏幕上有意义的字符(如“hello world”),这个过程就称为解码。

3、什么是字符集

学习视频
在计算机中字符的编解码就涉及到字符集(Character Set)这个概念,他就相当于能够将一个字符与一个整数一一对应的一个映射表,体现了某种编码规则、方法,常见的字符集有 ASCII、Unicode等。

ASCII码

历史中很长一段时间里,计算机仅仅应用在欧美的一些发达国家,因此在他们的程序中只存在他们所使用的拉丁字母(如a、b、c、d等)、阿拉伯数字,及不可见的控制字符(回车键、退格、换行键等),他们在编码解码时也只需要考虑这一种情况,就是如何将这些字符转换成计算机所能理解的二进制数,此时 ASCII 字符集应运而生。

4、C++的字符数据类型

char 是 C++ 中的基本数据类型,用于表示单个字符,字符实际上是以整数形式存储的,char在内存中通常占用一个字节(8 位)。在 ASCII 编码系统中,每个字符都对应一个唯一的整数值,char 类型可以存储这些值来表示相应的字符。字符本质上是一个小整数类型,它可以与整数进行隐式转换。例如,可以将一个字符赋值给一个整数变量,此时存储的是该字符对应的 ASCII 码值。

char ch = 'A'; // 存储字符'A'
int num = ch; // num 将得到 'A' 的ASCII码值 65
char ch=66;
int num='B';

5、C++语言的语句、运算符等采用什么编码来表示

C++语言的语句、运算符等通常采用ASCII编码或Unicode编码来表示。
ASCII编码是一种广泛使用的字符编码标准,用7位或8位二进制数来表示字符,涵盖了英文字母、数字、标点符号等基本字符。在C++的早期发展中,ASCII编码被广泛应用。
随着全球化的发展,Unicode编码逐渐成为主流。它能够表示世界上几乎所有的字符,包括各种语言的文字、符号等。C++从C++11标准开始支持Unicode,使得处理各种语言的字符更加方便和统一。例如,可以使用 char16_t 和 char32_t 类型来处理Unicode字符。
在实际应用中,具体使用哪种编码取决于具体的环境和需求。如果只涉及到基本的英文字符和数字,ASCII编码通常就足够了。但如果需要处理多种语言的字符或复杂的符号,Unicode编码则更为合适。

6、扩展阅读

(1)一文读懂字符编码

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

如若内容造成侵权/违法违规/事实不符,请联系编程知识网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

互联网不景气了那就玩玩嵌入式吧,用纯.NET开发并制作一个智能桌面机器人(四):结合BotSharp智能体框架开发语音交互

前言 前段时间太忙了博客一直都没来得及更新,但是不代表我已经停止开发了,刚好最近把语音部分给调整了一下,所以就来分享一下具体的内容了。我想说一下,更新晚还是有好处的,社区已经有很多的小伙伴自己实现了一些语音对话功能的案例,比如小智也有.NET客户端了,还有就是一…

【AI News | 20250327】每日AI进展

AI Repos 1、playwright-mcp 使用Playwright提供浏览器自动化功能的MCP服务,核心是让LLM通过结构化的可访问性快照与网页交互,不需要依赖截图或视觉模型。可以用来自动填写网页表单、自动收集网页信息、自动进行网页测试等。支持两种模式:快照模式(默认):使用可访问性快照…

markdown常用命令行格式

Markdown 主要命令(语法)如下:标题 使用 # 号表示标题,# 的个数决定标题的级别:一级标题 二级标题 三级标题 四级标题 五级标题 六级标题段落 & 换行 直接输入文字形成段落,使用两个以上空格或 进行换行:这是一个段落。 这是同一段的下一行。 使用 <br> 也可…

微调可以获得什么

1.改变模型的行为: 使模型的响应更稳定; 使模型聚焦于某一领域; 发展期潜力,在某一方面更加出色,比如对话 2.获取新的知识: 学习预训练阶段没学过的知识; 纠正过时的错误和信息;

2022CCPC Online Contest G - Count Permutation

利用大写字母较少的性质,记录两个大写字母中间的串是否相等来进行转移。 设 \(f[i][j]\) 表示考虑用到第 \(i\) 个大写字母的时候,\(s\) 匹配到第 \(j\) 个字符时最长匹配数。当前大写字母 \(t[pos[i]] = s[j]\) 时,显然有 \(f[i][j] = f[i][j - 1] + 1\)如果 \(s[pos[i - 1…

第2章 C#2

第2章 C#2 2.1 泛型 2.1.1 示例:泛型诞生前的集合 在泛型诞生之前(.NET1),开发者常用如下方式创建集合:数组普通对象集合 如 ArrayList​、Hashtable​专用类型集合 如 StringCollection​// 数组 static string[] GenerateNames() {string[] names = new string[4];names…

ESP32S3串口UART0,UART1UART2,软件模拟串口,USB虚拟串口的使用 - 基于ArduinoIDE

硬件串口的使用 硬件资源我使用的具体的模组型号为 ESP32-S3-WROOM-1(U), 根据官方手册其有3个串口。UART0:通常用于下载和输出调试信息串口,信号管脚默认与 GPIO43(TX) ~ GPIO44(RX) 复用,可以通过 GPIO 交换矩阵连接到任意 GPIO. UART1:信号管脚默认与 GPIO17(TX) ~ GPIO…

从0搭建nacos单点、集群

主机IP 主机名10.0.0.91 elk9110.0.0.92 elk9210.0.0.93 elk93nacos单机部署使用内置数据库 1.下载解压nacos [root@elk91 ~]# wget https://github.com/alibaba/nacos/releases/download/2.5.1/nacos-server-2.5.1.tar.gz[root@elk91 ~]# tar xf nacos-server-2.5.1.tar.gz -C…

ESP32在ArduinoIDE中的配置

🟡 注意 使用 Arduino IDE 开发 ESP32 时除了要看 Arduino 官方的资料一定还要看乐鑫的支持包的资料。详见↗️ 安装ArduinoIDE 到 Arduino 官网 下载最新版的 Arduino IDE 并安装。 🟡 压缩包格式的下载选项意义不大,Arduino IDE 2 无法制作为便携版,参考:绿色(Portabl…

文献阅读《Convolutional Neural Networks on Graphs with Fast Localized Spectral Filtering》

参考博客: 论文解读二代GCN《Convolutional Neural Networks on Graphs with Fast Localized Spectral Filtering》 - 别关注我了,私信我吧 - 博客园 (cnblogs.com) 摘要 为将CNN推广到高维图结构数据中,基于spectral graph theory(谱图理论),设计了一种通用的fast local…

1013 Div3 F题目加注释

https://codeforces.com/contest/2091/problem/F这题主题思路就是递推,从下往上递推,然后用差分和前缀合得到下一行可能性,详细看代码注释点击查看代码 #include <bits/stdc++.h> using namespace std; using ll = long long; using pii = pair<int, int>; const…