溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

C語言中int的取值范圍

發(fā)布時間:2020-07-01 10:17:15 來源:億速云 閱讀:870 作者:Leah 欄目:編程語言

這篇文章將為大家詳細講解有關C語言中int的取值范圍,文章內容質量較高,因此小編分享給大家做個參考,希望大家閱讀完這篇文章后對相關知識有一定的了解。

C++中,int占用4字節(jié),32比特,數(shù)據(jù)范圍是-2147483648~2147483647[-2^31~2^31-1]。

在C中,int型數(shù)據(jù)是一個有符號的整型數(shù)據(jù),其最高位為符號位(0表示正,1表示負)。

1個字節(jié)等價于8個二進制位,在很多計算機系統(tǒng)中,通常采用補碼來表示帶符號的數(shù)(補碼系統(tǒng))。

原碼:最高位為符號位(0表示正,1表示負),其他位按照一般的方法來表示數(shù)的絕對值。

反碼:對于一個帶符號的書來說,正數(shù)的反碼與其原碼相同,負數(shù)的反碼為其原碼除符號位以外的各位按位取反。

補碼:正數(shù)的補碼與其原碼相同,負數(shù)的補碼為其反碼在最低位加1。

兩個字節(jié),所以,二進制原碼最大為0111 1111 1111 1111 = 2^15 - 1 = 32767。

最小為1111 1111 1111 1111 = - (2^15 - 1) = -32767。

原碼中0的表示有正負之分[+0]原 = 0000 0000 0000 0000;[-0]原 =1000 0000 0000 0000。

所以二進制原碼表示時,范圍是 -32767 ~ -0和0~32767,因為有兩個0,所以不同的數(shù)值個數(shù)一共有2^16 - 1個。

而計算機采用而進駐補碼存儲數(shù)據(jù)時,0的表示是唯一的:[+0] 補= [-0] 補= 0000 0000 0000 0000

此時正數(shù)編碼不變,從0000 0000 0000 0000 ~ 0111 1111 1111 1111依然表示0 ~ 32767。

負數(shù)表示需依照補碼規(guī)則,即-32767的補碼為1000 0000 0000 0001。

所以補碼中會比原碼多一個編碼出來,這個編碼就是1000 0000 0000 0000,因為任何一個原碼都不可能在轉化成補碼時變成1000 0000 0000 0000,所以人們規(guī)定1000 0000 0000 0000這個補碼編碼為-32768。

結論:int型數(shù)據(jù)占兩個字節(jié)時,可表示2^16種變化,最高位為符號位,所以正負有2^15中變化,因為0也占一種,因此正負數(shù)的最大值并不對稱,即該int型數(shù)據(jù)取值范圍為-32768 ~ 32767。

C語言中int的取值范圍

擴展資料:

int使用方法:

定義方法:

int i;//定義整形變量i

int i=1;//定義整形變量i并初始化為1

定義常量:

const int i;//編譯錯誤,因為常量需要給予一個初值

const int i=1;//定義常量i,值為1

Java定義常量:

final int i=1;//定義常量i,值為1

關于C語言中int的取值范圍就分享到這里了,希望以上內容可以對大家有一定的幫助,可以學到更多知識。如果覺得文章不錯,可以把它分享出去讓更多的人看到。

向AI問一下細節(jié)

免責聲明:本站發(fā)布的內容(圖片、視頻和文字)以原創(chuàng)、轉載和分享為主,文章觀點不代表本網(wǎng)站立場,如果涉及侵權請聯(lián)系站長郵箱:is@yisu.com進行舉報,并提供相關證據(jù),一經(jīng)查實,將立刻刪除涉嫌侵權內容。

AI