c語言中u8,u16,u32和int區別

2021-12-27 18:33:53 字數 3631 閱讀 3320

1樓:

這幾種方式都是在表達同1個意思,沒有區別。

typedef unsigned              char       uint8_t;

typedef unsigned short     int         uint16_t;

typedef unsigned              int         uint32_t;

typedef unsigned          __int64     uint64_t;

**示例:

voidtim3_int_init(u16arr,u16psc)

//dosomething...

擴充套件資料

u8,u16,u32的使用

示例:#defineu32  unsignedint

#defineu16  unsignedshort

#defines32  int

#defines16  shortint

#defineu8  unsignedchar

#defines8  char

unsignedchar=u8

unsignedshortint=u16

unsignedlongint=u32

2樓:教育仁昌

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的記憶體佔用空間大小為佔用八個位元組。

3樓:愛在你心

c標準沒有具體規定各類整型資料所佔用的位元組數,只要求long型資料長度不短於int型,short型不長於int型,具體如何實現,由各計算機系統決定。列如,turbo c中的short,int都是16位,long是32位;vc++中的int,long都是32位,而short是16位。

4樓:

表示定義的型別的位數 ,8位 char 16位 short 32位int 一般int在32位機器上就是表示32位的

5樓:

u8 是 unsigned char

u16 是 unsigned short

u32 是 unsigned int

6樓:匿名使用者

u8: unsigned char

u16:unsigned short int

u32:unsigned int

有關stm32的問題,程式裡面的u8、u16這些是什麼意思啊

7樓:匿名使用者

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;

擴充套件資料

cpu按照其處理資訊的字長可以分為:8位微處理器、16位微處理器、32位微處理器以及64位微處理器等。字、半字是根據處理器的特性決定的,位元組則都是8bit。

stm32是32bit處理器,所以它的字是32bit的(一次處理4位元組長度的資料),半字自然就是16bit(2位元組)。儲存半字型別資料的暫存器由u16型別的變數訪問,但是如果用u8型別變數只能訪問該資料低8位,用u32型別變數讀的時候沒問題,寫的時候會因編譯器的不同而出現偏差。

stm32和傳統的arm相比最大的好處就是不需要對齊,三種型別的資料可以在記憶體中無縫的存放。而傳統的arm7或arm9等是照著地址對齊的,就是說不管8bit或者16bit的資料都要佔用4個位元組的空間,這樣的結果就是造成記憶體的浪費。

8樓:匿名使用者

u8,u16,u32都是unsigned  char型別,不過u8是一個位元組的,u16  是2位元組,u32是4位元組

typedef signed char int8_t;

typedef signed short int int16_t;

typedef signed int int32_t;

typedef signed __int64 int64_t;

/* exact-width unsigned integer types */

typedef unsigned char uint8_t;

typedef unsigned short int uint16_t;

typedef unsigned int uint32_t;

typedef unsigned __int64 uint64_t;

typedef int32_t s32;

typedef int16_t s16;

typedef int8_t s8;

typedef uint32_t u32;

typedef uint16_t u16;

typedef uint8_t u8;

9樓:may一米陽光

標頭檔案裡有定義 你看看 我也不記得了

10樓:life粉色的小豬

都是定義位元組的,只不過定義的位元組個數不同,c語言相關資料裡應該都有說。

c或c++編的嵌入式程式中經常出現u8/u16/u32,這是什麼資料型別?

11樓:匿名使用者

unsigned char = u8

unsigned short int = u16

unsigned long int =u32

有關stm32的問題程式裡面的u8u16這些是什麼意思啊

u8是unsigned char,u16是unsigned short,u32是unsigned long。u8,u16,u32都是c語言資料型別,分別代表8位,16位,32位長度的資料型別,一個位元組是8位,所以u8是1個位元組,u16是2個位元組,u32是4個位元組。可以在stm32庫標頭檔案中...

16G和8G的u盤用ntfs還是fat32的格式好

當然首選ntfs了支援大小 ntfs可以支援的分割槽 如果採用動態磁碟則稱為卷 大小可以達到2tb。而win 2000中的fat32支援分割槽的大小最大為32gb。可靠的檔案系統 ntfs是乙個可恢復的檔案系統。在ntfs分割槽上使用者很少需要執行磁碟修復程式。ntfs通過使用標準的事務處理日誌和恢...

諾基亞6120C和三星U608那個好

6120c是智慧型機器!擴充套件比u608好!200w畫素!但是u608有320w畫素!可以說和5610差不多!6120c 大約1400 1500 u608不好說!三星的各地 差距太大!我們這裡1700左右!和5610差不太多!如果推薦的話,我推薦6120c 如果不需要智慧型的話 5610我認識也小...