c++ - 将 ASCII 数字字符转换为实际字符

标签 c++ binary hex ascii

我正在学习 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++ 语法完成此转换

另外,请原谅任何误导的信息或标题。我仍在学习编程的“诀窍”。

最佳答案

charint .

std::cout << static_cast<int>(e);

char其实已经是整数了,只是重载了operator<<服用char将其显示为字符。通过使用转换将类型更改为 int ,我们导致调用运算符的不同重载,一个被编写为显示为整数。

关于c++ - 将 ASCII 数字字符转换为实际字符,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20675288/

相关文章:

c++ - 如何将数字的二进制表示中的所有 1 相加

二进制乘法,2的补码

java - java中32位十六进制转换为十进制

组合套接字发送的十六进制值

C 奇怪的函数变量赋值

c++ - 如何在 Mingw Gcc 中声明和链接到 RoInitialize、RoUninitialize、RoGetActivationFactory 和 HSTRING 函数

c++ - 了解clock_gettime()的不同时钟

c++ - 重置 "static"类的函数的命名约定

c++ - 如何捕获 SIGBUS 错误?

c++ - 如何将表示二进制的 int vector 转换为表示十进制数的 int vector ? C++