uint8_t、uint16_t、uint32_t、uint64_t

uint8_t、uint16_t、uint32_t、uint64_t

一、C语言数据类型介绍

​ 在C语言当中,数据类型主要分为四大种:基本类型、构造类型、指针类型和空类型void。

其中基本类型包含两大类:整型和浮点型;

构造类型类型包含数组、结构体 struct、共用体 union、枚举enum。

char	//1个字节

int		//4个字节

float	//4个字节

double	//8个字节

二、uint8_t、uint16_t、uint32_t、uint64_t

uint8_t、uint16_t、uint32_t、uint64_t等都并非新的数据类型,他们都是用typedef定义的,也就是起别名,他们包含于中。

在头文件中的定义如下:

typedef unsigned   char 		uint8_t;
typedef unsigned short  int 	uint16_t;
typedef unsigned     int 		uint32_t;
typedef unsigned    __INT64 	uint64_t;
uint8_t		//1个字节

uint16_t	//2个字节

uint32_t	//4个字节

uint64_t	//8个字节

输出格式:

uint8_t			//%d //(整型变量时)
uint16_t		//%d or %hu		
uint32_t		//%u
uint64_t		//%llu

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

三、uint16_t转为uint8_t

​ 在单片机当中,各种传感器的数据多数是32位或者16位的,在STM32的HAL库开发当中,其发送函数是8位的,此时不能不能直接发送不同类型的数据,会发生精度丢失,此时则需要进行转换。

uint8_t array[2];
array[0]=(address&0xFF00)>>8;     //取地址的高8位
array[1]=address&0x00FF;          //取地址的低8位

学习路上小笔记,觉得对你有用的小伙伴请点个赞!

你可能感兴趣的:(单片机,c语言)