程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 編程語言 >> C語言 >> 關於C語言 >> C語言整型數據類型概述

C語言整型數據類型概述

編輯:關於C語言
 

 int數據類型的位數為16位,short int數據類型的位數也是16位。而long int的位數為32位,可用來存儲比較大的整數。

short int 和 long int可以縮寫為short 和 long。

             C語言中的整型數據類型int、short int 和 long int

 

名稱 全稱類型說明符 縮寫類型說明符       位數                     范圍 整型 int int 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 sum;
long int population;
unsigned int sum;

 

在一個語句中聲明多個屬於同一類型的變量:

int withd, height;

int 類型的變量初始化方式:

withd = 150; //前面已經聲明,在此進行初始化

int height = 60; //直接在一個語句中進行聲明和初始化

 

 



C語言中整型常量有三種不同的表示形式:

     1、八進制整型常量:在八進制數值前面加前綴“0”,其數碼取值為0~7。例如:054、0567、05421。

     2、十六進制整型常量:前綴為“0X”或“0x“,其數碼取值為0~9、A~F 或 a~f。例如:0X3D、0XE0、0xfff等。

     3、十進制整型常量:既無前綴也無後綴。例如:254、745、890等。 如將存儲為long類型,需要在數字序列最後附一個字母L 或 l 作為後綴。例如:245L、7850L、124l等

 

 

 

 

 

1. 其它整數類型
    int 是 C 語言的基本整數類型,可以滿足我們處理一般數據的需求。C 語言還提供了四個可以修飾 int 的關鍵字:short、long、signed,以及 unsigned。利用這四個關鍵字,C 語言標准定義了以下整數類型:
      1) short int(可簡寫為 short),和 int 一樣,也是有符號整數
      2) long int(簡寫:long),有符號整數
      3) long long int(簡寫:long long),C99 標准添加的類型,
         有符號整數
      4) unsigned int(簡寫:unsigned),無符號整數,不能表示負數
      5) unsigned long int(簡寫:unsigned long),無符號整數,
         不能表示負數
      6) unsigned short int(簡寫:unsigned short),無符號整數,
         不能表示負數
      7) unsigned long long int(簡寫:unsigned long long),
         C99 添加的類型,無符號整數
      8) 所有沒有標明 unsigned 的整數類型默認都是有符號整數。
         在這些整數類型前面加上 signed 可以使讀者更清楚地知道
         這些是有符號整數,盡管有沒有 signed 都表示有符號整數。
         例如:signed int 等同於 int 。
    一般我們把 short 稱為短整型,把 long 稱為長整型,把 long long 稱為超長整型,把 int 稱為整型。unsigned 打頭的那些整數類型統稱為無符號整型。例如:我們稱 unsigned short 為無符號短整型。以此類推。

2. 聲明方式
    這些整數類型的聲明方式與 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。

3. 取值范圍(表示范圍)
    標准也規定了這些整數類型的最小取值范圍。short 的最小表示范圍和 int 一樣,都是-32767 到 32767 。也就是 -(2^15 - 1)到(2^15 - 1)。其中,2^15表示 2 的 15 次方。類似地,2 的 20 次方記作2^20 ,以此類推。注意:C 語言中 2^15 並不表示 2 的 15 次方,為了書寫方便,我們姑且這麼表示。long 的最小取值范圍是 -2147483647 到 2147483647 。也就是 -(2^31 - 1) 到 (2^31 - 1) 。unsigned short的最小表示范圍和unsigned int 一樣,都是 0 到 65535(2^16 - 1)。unsigned long 的最小取值范圍是 0 到 4294967295(2^32 - 1)。long long的最小取值范圍是 -9223372036854775807(-(2^63 - 1))到 9223372036854775807(2^63 - 1);unsigned long long 是 0 到 18446744073709551615(2^64 - 1)。
    標准規定,int 的表示范圍不能小於 short 的表示范圍,long 的表示范圍不能小於 int 的表示范圍。這就是說 short 型變量占用的空間可能比 int 型變量少,而 long 型變量占用的空間可能比 int 型變量多。16 位(bit)的計算機中,int 和 short 一般都是 16 位,而 long 是 32位;32位的計算機中,short一般是 16 位,而long和int是 32位。TC2(16位的編譯器)中,int是16位的;而 Dev-C++(32 位的編譯器)中,int 是 32 位的。
    使用 unsigned int 聲明的變量只能表示非負整數(0 和正整數)。如果 int 是 16 位的話,那麼 unsigned int 的表示范圍是 0 到 65535(2^16 - 1)。這是因為 unsigned 不需要符號位,可以把 16 個位全都用於表示整數。而 int 需要一個位作為符號位,用於表示正負,只有 15 個位用於表示整數。
    目前,long long 一般 64 位,long 是 32 位,short 是 16 位,而 int 或者 16 位,或者 32 位。具體某個編譯器到底使用多少位來表示這些類型,我們可以用運算符 sizeof 來獲取。例如:
          printf( "%lu\n", (unsigned long)sizeof(int) * 8 );  /* 輸出 int 的位數 */
          printf( "%zu\n", sizeof(short) * 8 );  /* 輸出 short 的位數 */
    sizeof 運算符返回其操作數占用空間的大小,以字節(Byte)為單位。注意,C 定義字節的大小為 char 類型的大小。char 通常是 8 位(bit)的,當然也可以更大。這裡我們假設 char 是 8 位的。
    sizeof 的用法我們以後會講到,現在只要有個印象就好了。第二句中的 %zu 是 C99 特有的,如果您的編譯器不支持 C99(准確地說,應該是如果您的編譯器使用的庫函數不支持 C99),運行結果將會出錯。  

  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved