#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/