OpenEdv-开源电子网

 找回密码
 立即注册
正点原子全套STM32/Linux/FPGA开发资料,上千讲STM32视频教程免费下载...
查看: 5305|回复: 0

u8,u16,u32都是啥,自己留着看

[复制链接]

14

主题

25

帖子

0

精华

初级会员

Rank: 2

积分
58
金钱
58
注册时间
2021-12-17
在线时间
24 小时
发表于 2022-6-4 17:30:14 | 显示全部楼层 |阅读模式
u8是unsigned char
u16是unsigned short,
u32是unsigned long

u8,u16,u32都是C语言数据类型,分别代表8位,16位,32位长度的数据类型,一个字节是8位,所以u8是1个字节,u16是2个字节,u32是4个字节。
可以在stm32库头文件中找到数据类型的声明

在stdint.h中:
typedef unsigned char uint8_t;
typedef unsigned short uint16_t;
typedef unsigned long uint32_t;

在stm32f10x.h 中:
typedef uint32_t u32;
typedef uint16_t u16;
typedef uint8_t u8;

扩展资料

基本型:类型说明符为int,在内存中占4个字节,外语全称:integer。
短整型:类型说明符为short int或short。所占字节和取值范围均与基本型相同。
长整型:类型说明符为long int或long,在内存中占4个字节。
无符号型:类型说明符为unsigned。无符号型又可与上述三种类型匹配而构成:
无符号基本型:类型说明符为unsigned int或unsigned。
无符号短整型:类型说明符为unsigned short。
无符号长整型:类型说明符为unsigned long。
下表列出了C语言中各类整型数据所分配的内存字节数及数的表示范:

类型说明符                数的范围                                                 字节数
int                            -32768~32767,即 -2~(2-1)                     4
unsigned int             0~65535,即 0~(2-1)                               4
short int                   -32768~32767,即 -2~(2-1)                     2
unsigned short int    0~65535,即 0~(2-1)                               2
long int                    -2147483648~2147483647,即 -2~(2-1)   4
unsigned long          0~4294967295,即0~(2-1)                       4
char                         -128 ~ +127                                            1(8bit)
signed char              -2^7 ~ 2^7-1                                          1(8bit)
unsigned char          0 ~ 2^8-1                                                1(8bit)

        CPU按照其处理信息的字长可以分为:8位微处理器、16位微处理器、32位微处理器以及64位微处理器等。字、半字是根据处理器的特性决定的,32位处理器的字是32bit,半字是16bit。16位微处理器的字是16bit,半字是8bit,而字节则都是8bit。stm32是32bit处理器,所以它的字是32bit的(一次处理4字节长度的数据),半字自然就是16bit(2字节)。存储半字类型数据的寄存器由u16类型的变量访问,但是如果用u8类型变量只能访问该数据低8位,用u32类型变量读的时候没问题,但写的时候会因编译器的不同而出现偏差。
        unsigned char是无符号字节型,char类型变量的大小通常为1个字节(1字节=8个位),且属于整型。整型的每一种都有无符号(unsigned)和有符号(signed)两种类型(float和double总是带符号的),在默认情况下声明的整型变量都是有符号的类型(char有点特别),如果需声明无符号类型的话就需要在类型前加上unsigned。无符号版本和有符号版本的区别就是无符号类型能保存2倍于有符号类型的数据,比如16位系统中一个int能存储的数据的范围为-32768~32767,而unsigned能存储的数据范围则是0~65535。
同样,在32位系统中一个char类型一般为8个bit,所以能存储的数据范围为-128~127,而unsigned char则是0~255,字符型所存储的数据是用来表示字符的,例如ASCⅡ或Unicode


正点原子逻辑分析仪DL16劲爆上市
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则



关闭

原子哥极力推荐上一条 /2 下一条

正点原子公众号

QQ|手机版|OpenEdv-开源电子网 ( 粤ICP备12000418号-1 )

GMT+8, 2025-2-26 07:16

Powered by OpenEdv-开源电子网

© 2001-2030 OpenEdv-开源电子网

快速回复 返回顶部 返回列表