C語言int的取值範圍用心感悟回答老師 推薦於2019-09-20

C語言int的取值範圍在32/64位系統中都是32位,範圍為-2147483648~+2147483647,無符號情況下表示為0~4294967295。

C/C++程式語言中,int表示整型變數,是一種資料型別,用於定義一個整型變數,在不同編譯環境有不同的大小,不同編譯執行環境大小不同。

C的資料型別包括:整型、字元型、實型或浮點型(單精度和雙精度)、列舉型別、陣列型別、結構體型別、共用體型別、指標型別和空型別。

基本資料型別:

void:宣告函式無返回值或無引數,宣告無型別指標,顯示丟棄運算結果。(C89標準新增)

char:字元型型別資料,屬於整型資料的一種。(K&R時期引入)

int:整型資料,表示範圍通常為編譯器指定的記憶體位元組長。(K&R時期引入)

float:單精度浮點型資料,屬於浮點資料的一種。(K&R時期引入)

double:雙精度浮點型資料,屬於浮點資料的一種。(K&R時期引入)

_Bool:布林型(C99標準新增)

_Complex:複數的基本型別(C99標準新增)

_Imaginary:虛數,與複數基本型別相似,沒有實部的純虛數(C99標準新增)

_Generic:提供過載的介面入口(C11標準新增)

C語言int的取值範圍

擴充套件資料:

1989年,ANSI釋出了第一個完整的C語言標準——ANSI X3。159—1989,簡稱“C89”,不過人們也習慣稱其為“ANSI C”。

C89在1990年被國際標準組織ISO(International Standard Organization)一字不改地採納,ISO官方給予的名稱為:ISO/IEC 9899,所以ISO/IEC9899: 1990也通常被簡稱為“C90”。

1999年,在做了一些必要的修正和完善後,ISO釋出了新的C語言標準,命名為ISO/IEC 9899:1999,簡稱“C99”。

在2011年12月8日,ISO又正式釋出了新的標準,稱為ISO/IEC9899: 2011,簡稱為“C11”。

參考資料:

百度百科-C語言

百度百科-int函式

C語言int的取值範圍udkeeyo 2021-03-29

16位的int取值範圍分為無符號整型(unsigned int)和有符號整型(signed int)。

無符號整型是0000 0000 0000 0000 ~ 1111 1111 1111 1111,對應的十進位制數為0到65535(即2^16-1)。

要理解有符號整型首先要了解兩個規定:

符號位

:對於有符號整型,儲存單元中最高位代表符號位:0為正,1為負。

有符號整型的負數表示方法

:補碼(原碼先取反再加1得到補碼)。

————————————————————————————————————————-

舉例:表示16位的-1。

1的原碼:0000 0000 0000 0001;

取反(01互換):1111 1111 1111 1110;

加1:1111 1111 1111 1111。

得到-1的補碼為1111 1111 1111 1111。

所以16位二進位制有符號整型的-1就表示為1111 1111 1111 1111。

————————————————————————————————————————-

所以16位二進位制數有符號整型的表示範圍為:

正數

,最高位為0,取值範圍如下:

0000 0000 0000 0001 到 0111 1111 1111 1111

對應的十進位制數為1到32767(2^15-1)。

0

,全部位為0:

0000 0000 0000 0000。

負數

,最高位為1,取值範圍如下(以補碼形式表示):

1111 1111 1111 1111 到 1000 0000 0000 0000

對應的十進位制數為-32768到-1,即-2^15到-1。

綜上

,16位二進位制數有符號整型的取值範圍是-32768到32767。

加深理解

:題主問題中問-32768(-2^15)怎麼來的,1000 0000 0000 0000在無符號整型中表示2^15怎麼在有符號整型中就表示-2^15了呢?這裡可以透過補碼減1取反倒推出原碼。

補碼:1000 0000 0000 0000

減1:0111 1111 1111 1111

取反得到原碼:1000 0000 0000 0000(2^15)

原碼補碼相同,只是個巧合。

C語言int的取值範圍天雲小店 推薦於2017-10-09

C語言中int的取值範圍為:-2147483648 ~ 2147483647

解釋如下:

int型別在C語言中佔4個位元組,即32個二進位制位。

當表示正數時,最高位為符號位(符號位為0),最大的正數是 0111 1111 1111 1111 1111 1111 1111 1111 即2^31 -1 = 2147483647

當表示負數時,最高位為符號位(符號位為1),最小的負數是 1000 0000 0000 0000 0000 0000 0000 0000 而在計算機中是以補碼的形式儲存的,C語言規定 1000 0000 0000 0000 0000 0000 0000 0000 的補碼為-2147483648

所以C語言中int的取值範圍為:-2147483648 ~ 2147483647

C語言int的取值範圍匿名使用者 2010-02-18

負數是用補碼儲存的,所以1111 1111 1111 1111 按十六位有符號整數轉換為十進位制數字就是-1,是最大的負整數。

-32768的轉換過程是:

先將32768(-32768的絕對值)按位取反,結果就是0111 1111 1111 1111

之後再將取反後的結果加1,就得了-32768的二進位制儲存:1000 0000 0000 0000

請自行查詢 補碼 的相關知識仔細研讀吧!

C語言int的取值範圍一零啞劇 2019-12-23

c語言int的取值範圍在32/64位系統中都是32位,範圍為-2147483648,+2147483647,無符號情況下表示為0,4294967295。c/c++程式語言中,int表示整型變數,是一種資料型別,用於定義一個整型變數,在不同編譯環境有不同的大小,不同編譯執行環境大小不同。c的資料型別包括:整型、字元型、實型或浮點型(單精度和雙精度)、列舉型別、陣列型別、結構體型別、共用體型別、指標型別和空型別。基本資料型別:void:宣告函式無返回值或無引數,宣告無型別指標,顯示丟棄運算結果。(c89標準新增)。char:字元型型別資料,屬於整型資料的一種。(k&r時期引入)。int:整型資料,表示範圍通常為編譯器指定的記憶體位元組長。(k&r時期引入)。float:單精度浮點型資料,屬於浮點資料的一種。(k&r時期引入)。double:雙精度浮點型資料,屬於浮點資料的一種。(k&r時期引入)。_bool:布林型(c99標準新增)。_complex:複數的基本型別(c99標準新增)。_imaginary:虛數,與複數基本型別相似,沒有實部的純虛數(c99標準新增)。_generic:提供過載的介面入口(c11標準新增)。