[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;
}

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

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

  • 8
    点赞
  • 17
    收藏
    觉得还不错? 一键收藏
  • 2
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值