从stringstream读取十六进制值到uint8_t不起作用,为什么?

时间:2018-04-13 12:47:44

标签: c++ stringstream

以下代码

#include <sstream>
#include <iostream>

int main() {
    uint8_t result = 0;
    std::stringstream ss("2B");
    ss << std::hex;
    ss >> result;

    std::cout << result;

    return 0;
}

在GCC 6.3中输出2,在macOS上输出48和clang。为什么?正确的结果是43,显然它适合uint8_t甚至int8_t。但是,将uint8_t替换为uint16_t会导致43

Ideone link for this code

0 个答案:

没有答案