【问题标题】:Eclipse printing question marks instead of numbersEclipse 打印问号而不是数字
【发布时间】:2025-12-18 06:00:01
【问题描述】:

如果这对你们大多数人来说可能是一个愚蠢的问题,我提前道歉,但我对 C++ 编程比较陌生。

无论如何,我想知道为什么在尝试打印数字时会得到一些黑色问号符号。代码如下:

#include <iostream>
using namespace std;

int main() {

uint16_t num1 = 38615;

uint8_t num2 = (num1 & 0XFF);
uint8_t num3 = ((num1 & 0XFF00) >> 8);

cout << num3 << endl; 
cout << num2 <<endl;
return 0;
}

我正在做一些测试来学习,我想做的是把 16 位长的“num1”分成两个单独的字节,然后打印出来。

提前谢谢你。

【问题讨论】:

    标签: c++ eclipse bit mask


    【解决方案1】:

    uint8_t 类型是unsigned char 的别名。 所有 char 类型被视为实际可打印字符。

    如果您想打印char(有符号、无符号或未指定)的整数值,则必须将其转换为更大的整数类型:

    cout << static_cast<unsigned>(num3) << '\n';
    

    【讨论】: