我正在学习 ASCII,以及它如何对字符进行编码。根据我的理解(虽然我可能是错的,因为我还在学习),ASCII 将数字编码为字符。例如,像这样:
0011 0000 = 30 = '0'(这是一个编码字符)
0000 0000 = 0 = 0(这是一个实际数字)
代表两种不同类型的零编码。
问题
有什么方法可以显示 ASCII char 数据类型的真实数字吗?
我尝试了以下代码:
#include <iostream>
int main(void) {
char e = '0';
std::cout << e << std::endl;
std::cout << sizeof(e) << std::endl;
std::cin.get();
std::cin.get();
return 0;
}
我知道这段代码与我想要完成的结果并不接近;但是,这就是我能想到的。我需要更好地了解如何通过 C++ 语法完成此转换。
另外,请原谅任何误导的信息或标题。我仍在学习编程的“诀窍”。
最佳答案
投char
到int
.
std::cout << static_cast<int>(e);
char
其实已经是整数了,只是重载了operator<<
服用char
将其显示为字符。通过使用转换将类型更改为 int
,我们导致调用运算符的不同重载,一个被编写为显示为整数。
关于c++ - 将 ASCII 数字字符转换为实际字符,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20675288/