1. 程式人生 > >C語言int的取值範圍

C語言int的取值範圍

我們常常看到int取值範圍為-32768~32767,實際上int的取值範圍依賴於計算機系統,16位機器中,int佔16位,取值範圍為前面所說的-32768~32767-2^16~2^16-1)。而在32位和64位機器中,int佔32位,取值範圍為-2147483648~2147483647-2^32~2^32-1) 。ISO/ANSI C規定,int型別的最小範圍為-32768到32767。

其它int型別的情況:

short int型別可能佔用比int型別更少的儲存空間,C保證short型別至少16位長,用於只需小數值的場合以節省空間。

long int 型別(或簡寫為long型別)可能佔用比int型別更多的儲存空間,C保證short型別至少32位長,用於使用大樹枝的場合。

long long int型別(或簡寫為long long型別)可能佔用比long型別更多的儲存空間,C保證short型別至少64位長,用於使用更大數值的場合。

C僅保證short型別不會比int型別長,並且long型別不會比int型別短。這樣做是為了適應不同的機器。例如一臺執行Windows3.1的IBM PC上,short型別和int型別都是16位,long型別是32位。而在依然太Windows XP機器或Macintosh Power PC上,short型別是16位,int型別和long型別都是32位。

我們可以通過sizeof函式得到以位元組為單位的大小(1byte=8bit),加以驗證:

int main() {
    printf("int size: %lu byte\n",sizeof(int));
    printf("char size: %lu byte\n",sizeof(short int));
    printf("long size: %lu byte\n",sizeof(long int));
    printf("double size: %lu byte\n",sizeof(long long int));
    return 0;
}

控制檯輸出:


相關推薦

c語言_範圍int long longlong

mark unsigned int 0~4294967295  int -2147483648~2147483647 unsigned long 0~4294967295long -2147483648~2147483647long long的最大值:92233720368

C語言的整型溢位問題 int、long、long long範圍 最大最小

《C和指標》中寫過:long與int:標準只規定long不小於int的長度,int不小於short的長度。 double與int型別的儲存機制不同,long int的8個位元組全部都是資料位,而double是以尾數,底數,指數的形式表示的,類似科學計數法,因此double比i

C語言int範圍

我們常常看到int取值範圍為-32768~32767,實際上int的取值範圍依賴於計算機系統,在16位機器中,int佔16位,取值範圍為前面所說的-32768~32767(-2^16~2^16-1)。而在32位和64位機器中,int佔32位,取值範圍為-2147483648

C語言中基本型別char、short、int、long等型別的範圍

        在C語言中,有時候會想知道這些基本型別的取值範圍。用邏輯位操作的方法是可以,比如把整型變數的所有位都賦值1,然後把最高位賦值為0,就可以得到整型的最大值了。         其實,還有一個更簡單的方法獲取這些基本型別的取值範圍。那就是使用系統標頭檔案limi

c語言long和long long的範圍

溢位和取值範圍 C語言的整型溢位問題 整數溢位 int、long int 、long long int 佔用位元組 《C和指標》中寫過:long與int:標準只規定long不小於int的長度,int不小於short的長度。 double與int型別的儲存機制不同

4. C語言 -- 資料型別和範圍

本部落格主要內容為 “小甲魚” 視訊課程《帶你學C帶你飛》【第一季】 學習筆記,文章的主題內容均來自該課程,在這裡僅作學習交流。在文章中可能出現一些錯誤或者不準確的地方,如發現請積極指出,十分感謝。 也歡迎大家一起討論交流,如果你覺得這篇文章對你有所幫助,記得

c語言==字元陣列與字串,char的範圍(1)

求char型別陣列的strlen長度 昨天老師給了一道題目 #include <stdio.h> #include "string.h" int main() { int i; char a[1000]; fo

C語言——原碼、反碼、補碼、資料型別範圍

記得剛學C語言的時候,對應資料型別的取值範圍經常會有這樣的疑問:比如8位的二進位制補碼範圍為什麼是-128~127呀?為 什麼會差一個數呀?(以8位為例) 為了解釋這個問題,我們先來了解下幾個概念(

C語言中各個資料型別的範圍

因為CPU的差異,各系統中的資料型別所佔的位元組數(bytes)不同,二進位制位數(bit)也不同。那麼怎樣才能知道自己系統的資料型別的位元組數,位數呢? 授之以魚不如授之以漁,大家可以自己從電腦裡獲取這些資訊。 首先我們知道1個位元組等於8個位,可以用sizeof()關鍵字設計以下程式解決: /*獲取

C語言各種資料型別範圍

轉自:http://blog.csdn.net/mafuli007/article/details/7325510 速查表: char -128 ~ +127 (1 Byte) short -32768 ~ + 32767 (2 Bytes) unsigned sho

C語言中,int型資料的範圍

在C語言中,int型資料所佔的位元組和具體的編譯器有關,32位編譯器int佔4個位元組(VC,C-free),16位編譯器int佔2個位元組(詳見“int型資料所佔位元組和什麼有關”)。 以兩個位元組為例: 在C中,int型資料是一個有符號的整型資料,其最高位為符號位(0表

C語言中各種資料型別中所佔的位元組和範圍

問題:C語言資料型別取值範圍,是根據什麼定義這個範圍取值? 首先,在計算機中所有資料都是用一個一個的二進位制位(0或1)儲存的,單位稱為:位(bit);然後,每8位二進位制數(比如01010001)代表一個位元組(byte)大小,即1位元組=8位;再然後,C語言每個資料型別

float/double的範圍-轉換-精度理解- C語言

float與double的範圍和精度1 範圍float和double的範圍是由指數的位數來決定的。float的指數位有8位,而double的指數位有11位,分佈如下:float:1bit(符號位)8bits(指數位)23bits(尾數位)double:1bit(符號位)11bits(指數位)52bits(尾數

C語言各種資料型別的範圍

速查表: char -128 ~ +127 (1 Byte) short -32767 ~ + 32768 (2 Bytes)-2的15次方-1 ~ 2的15次方 unsigned short 0 ~ 65536 (2 Bytes)0 ~ 2的16次方 int (l

CC++資料型別(int, long, short, char, long long) 的範圍、最大最小:climits 裡的一些巨集

#include <iostream> #include <climits> using namespace std; int main() { cout << "int is " <<sizeof

C語言整數的範圍

目錄1、整數的取值範圍2、版權宣告 整數是我們生活中常用的資料型別,也是程式設計中常用的一種資料,C語言使用int關鍵字來定義整數變數(int是 integer 的簡寫)。 在定義變數的時候,可以加signed、unsigned、short和long四種修飾符。 signed:有符號的,可以表示正數和負數。

C語言int型數據範圍

操作 求反 是把 int 超過 logs span 表示 color 在32位及以上操作系統上,int型數據的十進制表示範圍是:-231 到 231-1。原因:因為int是帶符號類型,所以最高位為符號位,於是最大表示的正數的原碼(正數的原碼和補碼相同):01111111

int、long、long long範圍

family lin line ng- sig color long long tom p s unsigned int 0~4294967295 int -2147483648~2147483647 unsigned long 0~4294967295

C#中float的範圍和精度分析

windows系統 weight 3.5 ans adding 發生 mage 深入 wid 本文實例分析了C#中float的取值範圍和精度。分享給大家供大家參考。具體分析如下: float類型的表現形式: 默認情況下,賦值運算符右側的實數被視為 double。 因此

C基本資料型別的範圍

int: -2147483648~+2147483647 無符號整型unsigned[int] :0~4294967295。 短整型 short [int]:-32768~32767。 無符號短整型unsigned short[int]:0~65535。 長整型 Long int: -214