天天看点

硬件编程经常用的u8,u16怎么来的?

这些都是自己定义的宏定义

u8来说

u8 是unsigned char宏定义得来的,说到unsigned char,那么肯定有人会说为什么用unsigned char,而不用signed char,这里我先说一下sign char在c语言中默认是char,下面文章我会用char代替sign char。
 这是因为char和unsigned char都在内存里占一个字节(byte),一个字节有八位二进制,而char与signed char不同的是char的八位二进制中最高位是符号位,也就应了它的符号sign char,而unsigned char没有符号。  
           

因此char能表示-128~127, unsigned char没有符号位,因此能表示0~255,

用个表格更直观些

类型 字节数 取值范围
char 1 -128~127
unsigned char 1 0~255

在我们在硬件编程需要经常进行位操作,见到最多的就是八位一起操作了,那么unsigned char正好有八位,可以满足我们的需求,这就是为什么我们经常能看到别人程序里的引用u8来定义变量

u16来说

这里跟u8差不多,u16是unsigned short宏定义的,可以直接对16位二进制进行操作

再看看经常在单片机里用的宏定义

硬件编程经常用的u8,u16怎么来的?
硬件编程经常用的u8,u16怎么来的?

最后再来写C语言中数据类型的范围

硬件编程经常用的u8,u16怎么来的?