天天看點

硬體程式設計經常用的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怎麼來的?