C語言三種整數型別

2022-04-23 07:15:56 字數 2279 閱讀 2864

名稱

全稱型別說明符

縮寫型別說明符      

位數       

範圍整型

intint

16位     

-32768至+32767 

無符號整型

unsigned int 

unsigned

16位0 至 65,535 

短整型short int 

short

16位-32768至+32767 

無符號短整型     

unsigned short int    

unsigned short

16位0 至 65,535 

長整型long int 

long

32位-2,147,483,648 至 2,147,483,647

無符號長整型

unsigned long int

unsigned long

32位0至4,294,967,295

這些整數型別的宣告方式與 int 型別的宣告方式一樣。例如:

long int estine;

long johns;

short int erns;

short ribs;

unsigned int s_count;

unsigned players;

unsigned long headcount;

unsigned short yesvotes;

long long ago; /* c99 特有 */

unsigned long long ego; /* c99 特有 */

如果編譯器不支援 c99 標準,那就不能使用 long long 和 unsigned long long。

如果處理的只是非負整數,那麼應該優先使用 unsigned 打頭的那些整數型別。

如果處理的整數超出了 int 所能表示的範圍,並且編譯器中,long 的表示範圍比 int 大,那就使用 long。

不過,若非必要,盡量不要用 long,因為它可能會降低程式執行效率。

有一點要注意:如果編譯器中,long 和 int 都是 32 位的,並且您需要使用 32 位整數,那麼應該用 long,而不要用 int。

只有這樣,程式才可以安全地移植到 16 位的計算機,因為 16 位的計算機中,int 一般也是 16 位的。

類似地,如果要使用 64 位整數,那就用 long long。

如果 int 是 32 位的話,那麼使用 short 可以節省空間,不過得確保您要處理的整數不會超出 short 的表示範圍。這種「節省」對記憶體大的計算機來說,是沒什麼意義的。

一般來說,整數常量是被當作 int 型別來儲存的。

如果使用的整數常量超出了 int 的表示範圍,c 語言規定編譯器自動使用 unsigned int 來處理這個常量。

如果 unsigned 也不足以表示這個常量的話,編譯器就會用 long。

如果還表示不了的話,那就依次用 unsigned long,long long,unsigned long long。

如果 unsigned long long 也表示不了,那麼編譯器就沒轍了。

注意:long long 和 unsigned long long 是 c99 特有的。

例如:如果 int 是 16 位的話,它就表示不了常量 1000000。編譯器會使用 long 來處理這個常量,因為 unsigned int 也表示不了 1000000 。

同樣,十六進製制和八進位制整數常量通常也是被作為 int 來處理。但是,當我們使用的常量超出了 int 的表示範圍後,編譯器會依次使用unsigned int,long,unsigned long,long long 和 unsigned long long。直到所使用的型別足以表示那個常量為止。

有時,使用的是較小的常量,但是希望這個常量被當作 long 來處理,這就需要在這個常量後面加上字尾 l(小寫字母 l)或者 l(大寫字母 l)。

應該避免使用 l ,因為 l 容易和數字 1 混淆。

例如:整數常量 7 是被作為 int 來處理的,但整數常量 7l(或者 7l)是被作為 long 來處理的。

類似地,在整數常量後面加上字尾 ll 或者 ll ,這個常量就會被當作 long long 來處理。

例如:3ll 。如果想使用無符號整數常量的話,還要配合使用字尾 u 或者 u 。

例如:2u,3u,4lu,5ul,6lu,7llu,8ull,9ull 。

這些字尾也可以用於十六進製制和八進位制整數常量。例如:020l,010ll,0x30ul,0x40ull。

程序 三種型別,三種狀態

一 程序的概念 程序是執行乙個程式時所分配的資源,資源包括占用的cpu,記憶體等,是乙個動態執行過程。二 程序的組成 正文段使用者資料段 系統資料段 程序控制塊 pcb cpu暫存器值 堆疊 三 程序控制塊pcb 程序控制塊是系統用來控制和管理程序,獲得程序狀態和程序存在特徵的唯一標識。包括 程序標...

C語言整數相加溢位判斷的三種方法

c語言有兩類整數算術運算,有符號運算與無符號運算,在計算兩數的加減乘除運算,往往要考慮溢位的情況 例 檢查兩個非負整型變數a b是否溢位 第一種 if a b 0 complain 這種做法是檢查內部暫存器的標誌位是否為負 第二種 if unsigned a unsigned b int max c...

C語言 整數型別

reg為暫存器 字長,是說這個暫存器是多少寬的,每個暫存器可以表示32bit資料,也是說cpu與ram每一次傳遞的資料也是32bit 計算機內部一切都是二進位制 所有的型別,只是說我們以什麼方式去看待它,並不是表明,它在內部是怎麼 表達的。18 00010010 18 我們在做十進位制運算時,我們實...