【问题标题】:Why can't I store a small integer in a uint8_t type? [duplicate]为什么我不能在 uint8_t 类型中存储一个小整数? [复制]
【发布时间】:2015-11-07 17:05:15
【问题描述】:

如果我将数字 2 存储在 uint8_t 类型中并尝试打印它,我什么也得不到。一个 8 位整数肯定可以存储数字 2。我错过了什么?

示例代码:

#include <iostream>
#include <cstdint>

int main() {
    std::uint8_t x = 2;
    std::cout << "x = " << x << "\n";
}

输出:

x = 

【问题讨论】:

  • 这个程序的行为和你说的一样吗,这个确切的程序?
  • 我错过了我在上面添加的#include 。除此之外,是的。

标签: c++ types


【解决方案1】:

uint8_t 通常是 unsigned char 的 typedef,并将打印为字符。

2 是一些不可打印的字符值,因此您不会得到任何有意义的输出。

您可以使用+x 将 x 提升为整数,它将按原样打印。

【讨论】:

  • 可以用gcc和clang确认:demo
猜你喜欢
  • 2020-06-05
  • 2016-06-20
  • 2021-02-14
  • 2023-03-30
  • 2019-08-10
  • 2019-11-28
  • 1970-01-01
  • 1970-01-01
  • 2011-07-19
相关资源
最近更新 更多