C语言中“U16”和“S16”是什么?

Python021

C语言中“U16”和“S16”是什么?,第1张

在C语言中,并没有U16和S16这两种基本类型。不过在C语言的编程习惯上,往往为了简写,约定U16和S16两种类型。尤其常见于嵌入式编程或驱动编程上。

其中

U16为16位无符号数,S16为16为有符号数。

定义如下:

typedef short S16

typedef unsigned short U16

可以看到,U16和S16都是占2个字节的整型类型,区别只是是否有符号。

于是U16可以表示的范围为0~65535, S16可以表示的范围为-32768~32767。

C语言是一门通用计算机编程语言,应用广泛。C语言的设计目标是提供一种能以简易的方式编译、处理低级存储器、产生少量的机器码以及不需要任何运行环境支持便能运行的编程语言。

尽管C语言提供了许多低级处理的功能,但仍然保持着良好跨平台的特性,以一个标准规格写出的C语言程序可在许多电脑平台上进行编译,甚至包含一些嵌入式处理器(单片机或称MCU)以及超级电脑等作业平台。

二十世纪八十年代,为了避免各开发厂商用的C语言语法产生差异,由美国国家标准局为C语言订定了一套完整的国际标准语法,称为ANSI C,作为C语言最初的标准。

c语言中u8,u16,u32和int区别为:符号不同、数据范围不同、内存占用空间不同。

一、符号不同

1、u8:u8表示无符号char字符类型。

2、u16:u16表示无符号short短整数类型。

3、u32:u32表示无符号int基本整数类型。

4、int:int表示带符号int基本整数类型。

二、数据范围不同

1、u8:u8的数据范围为0~+127[0~2^8-1]。

2、u16:u16的数据范围为0~+65535[0~2^16-1]。

3、u32:u32的数据范围为0~+2147483647[0~2^32-1]。

4、int:int的数据范围为-2147483648~+2147483647[-2^31~2^31-1]。

三、内存占用空间不同

1、u8:u8的内存占用空间大小为只占一个字节。

2、u16:u16的内存占用空间大小为占用两个字节。

3、u32:u32的内存占用空间大小为占用四个字节。

4、int:int的内存占用空间大小为占用八个字节。