[C/C++入门][字符与ASCII码]6、用代码来转换字符与它的ASCII码

序章

这一章节之前,我们先简单的提一嘴,要知道计算机中的所有文字也好,图片也好,都是以2进制显示的。

而多个二进制放在一起,就可以表示更大的数字。因此有了字节(不会跳动的,不是会跳动的字节),1个字节等于8位。

1位就是一个二进制的开关(0和1)。八位放到一起,就是一个字节,可以想象成一排南孚电池在包装里装了8个,而char类型的大小刚好就是1个字节。

因此他的长度嘛。最大也就只能表示:2的8次方=256个数。如果还要带符号,也就是+-,需要把8个开关中的第一个开关用来存储±(0,和1),剩下的位置也就剩7个了,最大表示2的7次方也就-128到127。

简介

在计算机中,char 类型通常用来表示单个字符。在C++和其他许多语言中,char 类型的变量实际上存储的是字符的编码值,而非字符本身。最常见的字符编码标准之一,也就是我们今天要讲的就是 ASCII,(American Standard Code for Information Interchange)美国信息交换标准代码,它使用7位二进制数来表示128种可能的字符。为啥美国定义的呢,emmmm,也没啥,就是先入为主,不然如果没有统一的编码,那真的不可想象。就好像一个河南人,一个俄罗斯人,一个法国人,一个日本人,不会外语在一块交流。自己只能听懂自己的,你们想想吧。

可以把编码理解为战争时期的密码本。有了密码,数字和文字11对应,才能解密文字。而编码就是把计算机存储的二进制表示的十进制转换为文字和字符。

ASCII码将每个字符映射到一个介于0到127之间的唯一数字。例如,字符 'A' 的ASCII码值是65,而字符 'a' 的ASCII码值是97。在C++中,你可以在代码中直接使用字符字面量,也可以使用其对应的ASCII码值表示。例如:

char letter = 'A'; // 使用字符字面量
char number = 65;  // 使用ASCII码值

在上述代码中,letternumber 实际上存储的是相同的值,即65,因为字符 'A' 的ASCII码值就是65。

在处理字符和ASCII码之间转换时,你可以简单地进行赋值或类型转换。例如,如果你想从一个char变量中获取它的ASCII码值,你可以直接将它用作整数:

char myChar = 'B';
int asciiValue = myChar; // asciiValue 现在等于 66

反过来,如果你想将一个整数转换成它的ASCII码对应的字符,你可以将整数赋值给char类型的变量:

int someInt = 66;
char myChar = someInt; // myChar 现在是 'B'

值得注意的是,现代计算机系统和编程语言通常使用扩展的ASCII码或者其他编码方式,如Unicode(包括UTF-8、UTF-16等),以支持更多种类的字符和多语言环境。但在大多数情况下,ASCII码仍然是理解和处理字符编码的一个重要起点。

现在我们来写一个编程题,输入一个数字,来输出他的ASCII码

编码

有很多中方法来输入char类型。

char c;

  • 使用cin输入:cin>>c;
  • 使用scanf()输入:scanf("%c", &c);
  • 使用getchar()输入: c = getchar();
  • 使用cin.get()输入:c = cin.get();
#include <iostream>
using namespace std;
int main()
{char c;cin>>c;cout<<(int)c;return 0;
}

这行代码将char类型的变量c强制转换为int类型,从而得到其对应的ASCII码值,并将这个整数值输出到屏幕上。

还有c语言中的写法使用scanf,printf输入输出

#include <bits/stdc++.h>
using namespace std;
int main()
{char c;scanf("%c", &c);printf("%d", c);return 0;
}

以及

#include <bits/stdc++.h>
using namespace std;
int main()
{printf("%d", getchar());return 0;
}

还有

#include <bits/stdc++.h>
using namespace std;
int main()
{int c = cin.get();cout<<c;return 0;
}

cin.get()返回一个字符型量,其本质是数字,将其赋值给整型变量v,数字不变

互相转化

同样的,我们可以使用char来把int再转回字符

#include <iostream>
using namespace std;
int main()
{int a;cin>>a;cout<<(char)a;return 0;
}

其他方法也是一样

#include <bits/stdc++.h>
using namespace std;
int main()
{int a;scanf("%d", &a);printf("%c", a);return 0;
}

那现在,再让你记这个编码,你还愿意记么,我们只要记住关键的数字是不是就可以了呢?

好了,有什么问题,我们评论区讨论一下吧?

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

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

相关文章

Windows上部署springboot项目并挂载后台

文章目录 前言一、准备工作二、步骤1. 构建 Spring Boot 项目2. 下载并安装 NSSM3. 使用 NSSM 安装 Spring Boot 应用作为服务4. 管理 Spring Boot 服务 总结 前言 在 Windows 10 裸机&#xff08;即没有预安装服务器操作系统的普通 Windows 10 桌面版&#xff09;上部署 Sprin…

PostgreSQL 如何应对因大量并发更新导致的锁竞争?

&#x1f345;关注博主&#x1f397;️ 带你畅游技术世界&#xff0c;不错过每一次成长机会&#xff01;&#x1f4da;领书&#xff1a;PostgreSQL 入门到精通.pdf 文章目录 PostgreSQL 如何应对因大量并发更新导致的锁竞争一、锁竞争的原因及影响&#xff08;一&#xff09;什…

国外的一组B端界面,个性化是标配,为什么?

因为国外商务合作关系非常的纯粹&#xff0c;我出钱你出力&#xff0c;你干好我买单&#xff0c;没有这么多弯弯绕。 匠心接单中...8年前端开发和UI设计接单经验&#xff0c;完工项目1000&#xff0c;持续为友友们分享有价值、有见地的干货观点&#xff0c;有业务需求的老铁&am…

[A-04] ARMv8/ARMv9-Cache的相关策略

ver0.3 前言 前面我们已经通过三篇文章反反复复的讲Cache的概念、结构、架构&#xff0c;相信大家对Cache已经大概有了初步的了解。这里简单归纳一下: (1) Cache从硬件视角看&#xff0c;是连接PE-Core和主存的一种存储介质&#xff0c;存储的数据是主存中数据的副本&#xf…

Python解释器详解及其应用场景

Python解释器及其应用场景 一、Python解释器概述 Python解释器是Python程序运行的核心&#xff0c;它负责读取Python代码&#xff08;即.py文件&#xff09;并将其转换为机器语言&#xff0c;从而使计算机能够执行。简单来说&#xff0c;Python解释器就像是Python代码与计算机…

完美解决ImportError: cannot import name ‘PILLOW_VERSION‘的正确解决方法,亲测有效!!!

完美解决ImportError: cannot import name PILLOW_VERSION’的正确解决方法&#xff0c;亲测有效&#xff01;&#xff01;&#xff01; 亲测有效 完美解决ImportError: cannot import name PILLOW_VERSION的正确解决方法&#xff0c;亲测有效&#xff01;&#xff01;&#xf…

鸿蒙模拟器(HarmonyOS Emulator)Beta申请审核流程

文 | Promise Sun 一.背景&#xff1a; 鸿蒙项目开发需要使用模拟器进行开发测试&#xff0c;但目前想在DevEco Studio开发工具中使用模拟器就必须到华为官网进行报名申请&#xff0c;参加“鸿蒙模拟器&#xff08;HarmonyOS Emulator&#xff09;Beta活动申请”。 申请审核通…

element-ui dialog 嵌套

dialog 内部嵌套 dialog&#xff0c;内层的 dialog 层级显示会遮罩在内容的 dialog 内容区域之上&#xff0c;内层 dialog 添加 append-to-body 属性即可&#xff0c;如官方文档&#xff1a;

SpringBoot系列:通过AOP+注解优雅实现操作日志记录

文章目录 前言一、简介1.1 操作日志在企业应用中的重要性1.2 使用AOP和注解实现操作日志记录的好处 二、开发环境三、准备工作3.1 创建操作日志记录表3.2 创建系统日志实体类 四、代码实现4.1 创建业务枚举类4.2 创建日志注解4.3 创建操作状态枚举类4.4 创建IP工具类4.5 创建切…

【docker镜像如何在不同的架构上运行】

背景 公司要求在国产的系统和cpu的机器上部署java项目&#xff0c;一开始我以为docker是跨平台通用的&#xff0c;直到我遇到了 standard_init_linux.go:220: exec user process caused "exec format error"才知道原来不同架构的cpu下不能互通&#xff0c;我的环境…

人像视频预处理【时间裁剪+画面裁切+调整帧率】

在视频处理中&#xff0c;cut&#xff08;裁剪&#xff09;、crop&#xff08;画面裁切&#xff09;和fps&#xff08;帧率调整&#xff09;这三个操作的顺序安排对最终的视频质量和效率有重要影响。以下是一种推荐的顺序和理由&#xff0c;旨在提高效率和减少错误&#xff1a;…

算法力扣刷题记录 四十八【513.找树左下角的值】

前言 二叉树篇继续。 记录 四十八【513.找树左下角的值】 一、题目阅读 给定一个二叉树的 根节点 root&#xff0c;请找出该二叉树的 最底层 最左边 节点的值。 假设二叉树中至少有一个节点。 示例 1: 输入: root [2,1,3] 输出: 1示例 2: 输入: [1,2,3,4,null,5,6,nul…

【k8s部署elasticsearch】k8s环境下安装elasticsearch集群和kibana

文章目录 简介一.条件及环境说明二.需求说明三.实现原理及说明四.详细步骤4.1.规划节点标签4.2.创建三个statefulset和service headless配置4.3.创建service配置 五.安装kibana六.调整索引分区七.安装说明 简介 k8s集群中搭建有elasticsearch服务一般都会用到pvc&#xff0c;但…

在线工具--将Json结构映射为另外一种Json结构

具体请前往&#xff1a;在线工具-将json结构映射为另外一个json结构

使用ChatGPT来撰写和润色学术论文的教程(含最新升级开桶ChatGpt4教程)​​

现在有了ChatGPT4o更加方便了, 但次数太少了 想要增加次数可以考虑升级开桶ChatGpt4​​ 一、引言 在学术研究中&#xff0c;撰写高质量的论文是一项重要的技能。本教程将介绍如何利用ChatGPT来辅助完成从论文构思到润色的全过程。 二、使用ChatGPT写论文 1. 写标题 Title/T…

如何在电磁仿真软件CST中设置自由边界?

CST中的默认仿真边界是六面体&#xff0c;那如果想要设置自由边界&#xff0c;应该怎么做呢&#xff1f;下面以一个简单例子说明设置自由边界的方法。&#xff08;1&#xff09;想要实现自由边界需要在六面体内做填充&#xff0c;首先根据需要创建一个形状&#xff0c;本例中想…

20240716 Codeforces题目

A - Split the Multiset 题目 多集是一组数字&#xff0c;其中可以有相等的元素&#xff0c;数字的顺序无关紧要。例如&#xff0c; { 2 , 2 , 4 } \{2,2,4\} {2,2,4} 是一个multiset。 你有一个多集 S S S 。最初&#xff0c;multiset只包含一个正整数 n n n 。即 S {…

ZBrush入门使用介绍——1、基本操作

大家好&#xff0c;我是阿赵。   这期开始介绍一下ZBrush的用法。   ZBrush作为一个老牌的雕刻模型软件&#xff0c;已经有很多年的历史了。阿赵我接触它已经是将近20年前在首都师范大学学习三维影视课程的时候了。当时老师讲得比较随便&#xff0c;所以后来自己又找了一些…

Armv8-R内存模型详解

目录 1.内存模型的必要性 2.Armv8-R内存模型分类 2.1 Normal memory 2.2 Device Memory 2.2.1 Gathering 2.2.2 Reordering 2.2.3 Early Write Acknowledgement 3.小结 大家好&#xff0c;今天是悲伤的肌肉。 在调研区域控制器芯片时&#xff0c;发现了S32Z、Stellar …

代码随想录训练营Day 72|拓扑排序精讲、dijkstra(朴素版)精讲

1.拓扑排序精讲 代码随想录 题目&#xff1a;117. 软件构建 代码&#xff1a; #include <iostream> #include <vector> #include <queue> #include <unordered_map> using namespace std; int main(){// 输入int n,m,s,t;cin >> n >> m;u…