[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码值
在上述代码中,letter
和 number
实际上存储的是相同的值,即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;
}
那现在,再让你记这个编码,你还愿意记么,我们只要记住关键的数字是不是就可以了呢?
好了,有什么问题,我们评论区讨论一下吧?
原文地址:https://blog.csdn.net/qq_14840819/article/details/140386565
免责声明:本站文章内容转载自网络资源,如本站内容侵犯了原著者的合法权益,可联系本站删除。更多内容请关注自学内容网(zxcms.com)!