c++基础之uint8_t

C++的基础数据类型:

名称 字节长度 取值范围
bool 1 false,true
char 1 -128~127
signed char 1 -128~127
unsigned char 1 0~255
short(signed short) 2 -215 ~ 215 - 1
unsigned short 2 0~216-1
int (signed int) 4 -231 ~ 231-1
unsigned int 4 0~232-1
long (signed long) 4 -231 ~ 231-1
long long 8 -263 ~ 263-1
unsigned long 4 0~232-1
float 4 -3.4* 10-38~ 3.4*1038
double 8 -1.710-308 ~ 1.710-308

  C++的主要数据类型,主要分为三类:布尔型,整型(char型从本质上说,也是种整型类型,它是长度为1的整数,通常用来存放字符的ASCII码),浮点型。


  而 *_t是typedef定义的表示标志,是结构的一种标注。即我们所看到的 uint8_t、uint16_t、uint32_t都不是新的数据类型,而是通过typedef给类型起得别名。 (如C语言中没有bool类型,有的程序员用int表示,有的用short表示,则利用统一的定义来表示bool,是比较好的。`typedef char bool`)。
  则很明显的看出:uint8_t是用1个字节表示的;uint16_t是用2个字节表示的;uint32_t是用4个字节表示的。 比如:
typedef signed char             int8_t;
typedef short int               int16_t;
typedef int                     int32_t;

typedef unsigned char           uint8_t;
typedef unsigned short int      uint16_t;
typedef unsigned int            uint32_t;

则对应的输出为:

uint16_t  %hu
uint32_t  %u
uint64_t  %llu

注意,uint8_t实际上就是一个char,所以输出 uint8_t类型的变量实际上输出对应的字符,而不是数值,比如:

uint8_t  num=67;
cout << num << endl;		//输出结果为C

你可能感兴趣的:(C++基础)