c++ - 当我尝试将范围值存储为8位固定宽度整数时,它向我显示了其他一些值[ASCII]

标签 c++ char integer cout

#include <iostream>
#include <cstdint>

int main() {
    std::uint8_t i{5}; // direct initialization
    std::cout << i;
    return 0;
}

我无法获得值5,而是得到了其他值。

为什么此代码为我提供了其他一些ASCII值而不是值5?

最佳答案


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

类型std::uint8_t定义为无符号字符的别名。

这是一个演示程序。
#include <iostream>
#include <cstdint>

int main()
{
    std::uint8_t i { 65 };
    std::cout << i << '\n';
    std::cout << static_cast<int>( i ) << '\n';
}   

它的输出是
A
65

关于c++ - 当我尝试将范围值存储为8位固定宽度整数时,它向我显示了其他一些值[ASCII],我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/59346140/

相关文章:

C++ 继承自未定义的模板类型

c++ - GCC avx2intrin.h(版本 X-9.2)中缺少 _mm_broadcastsd_pd

c++ - QT - 是否有将几张图片组合成一张的类(class)?

c++ - noexcept, __declspec(nothrow), 抛出(), __attribute__(nothrow)

java - 在java中,有没有一种方法可以结合String.contain()和String.equals()来在给定另一个字符时打印出某个字符?

delphi - MsComm ActiveX 与 Delphi 2010 兼容吗?

C - 字符数组在 memset 之后获取幻像值

php - 将数组中的所有数字值转换为整数类型,否则将非数字值保留为字符串

python - 如何限制用于存储整数的内存量?

android模拟器eclipse退出应用程序,