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定义的,也就是起别名,他们包含于<stdint.h>中。
在头文件中的定义如下:
typedef unsigned char uint8_t;typedef unsigned short int uint16_t;typedef unsignedint 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 %huuint32_t//%uuint64_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位
学习路上小笔记,觉得对你有用的小伙伴请点个赞!