1字节整数数据类型

时间:2012-12-10 16:05:25

标签: c++ char hex int uint8t

我写了以下代码:

 #include <iostream>
 #include <iomanip>
 #include <stdint.h>

 using namespace std;

 int main()
 {
     uint8_t c;

     cin  >> hex >> c;
     cout << dec << c;

     return 0;
 }

但是当我输入c - 十六进制为12时,输出也是c。我期待着12.后来我了解到:

  

uint8_t通常是unsigned char的typedef。所以它实际上是将c读作ASCII 0x63。

是否存在1字节整数,在执行I / O时表现为整数而不是char?

2 个答案:

答案 0 :(得分:4)

不是我知道的。

您可以使用更宽的整数类型执行I / O,并根据需要使用范围检查和转换。

答案 1 :(得分:1)

恐怕我也不知道,但是将十六进制数读入整数类型可以完成如下:

#include <iostream>
using namespace std;

int main () {
    short c;
    cin >> std::hex >> c;
    cout << c << endl;
    return 0;
}