① c語言/取值范圍
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語言的代碼中每一種變數的·取值范圍
-32768到32767是標准規定的int的最小取值范圍,但是32位環境下int的取值一般都是-2147483648到2147483647。另外16位環境下一般short和int的范圍是一樣的。
C語言里整數類型只規定了最小范圍,而具體一個編譯器實現是多大的范圍是不一定的。另外一個例子就是long,16位環境和32微軟的編譯器是32位,gcc和clang是64位。
③ C語言筆記——取值范圍
這章主要是留作備用,作為補充知識的吧,不過常用的數據類型的取值范圍還是得做一下了解,並且記住的。
這里得先明確幾個個概念:
那麼一個位元組的大小能表示多大的數呢?
11111111b = FFh = 255
所以我們可以看出,在無符號位的情況下,一個位元組就能表示 0 ~ 255 的數。
通常,在有符號情況下,也就是變數類型之前有 signed 這樣的情況下,8 個比特位的第一位為符號位。
關系為:如果符號位是 0 ,那麼這就是一個正數;如果符號位為 1 ,那麼這就是一個負數。
那麼們舉個栗子:
一個 int 型的變數,默認是 signed int 並且是 4 個位元組的,那麼就佔有 8 * 4 = 32 個比特位,同時他第一位是符號位,那麼就只有 31 個比特位是表示數值的,表示的大小就是 -2的31次方~2的31次方
這里引入一個補碼的概念,雖然我並不知道這個有啥用,但是我看教程都講了,那就也寫一下吧。
④ C語言int的取值范圍
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標准新增)
(4)c語言變數位數和取值范圍擴展閱讀:
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類型變數范圍是-32,768 to 32,767 或者 -2,147,483,648 到 2,147,483,647。
C語言int的取值范圍在32/64位系統中都是32位,范圍為-2147483648~+2147483647,無符號情況下表示為0~4294967295。
C/C++編程語言中,int表示整型變數,是一種數據類型,用於定義一個整型變數,在不同編譯環境有不同的大小,不同編譯運行環境大小不同。
C的數據類型包括:整型、字元型、實型或浮點型(單精度和雙精度)、枚舉類型、數組類型、結構體類型、共用體類型、指針類型和空類型。
整型變數是一種計算機語言。在C語言中,整型變數的值可以是十進制,八進制,十六進制,但在內存中存儲著是二進制數。變數顧名思義是數值可以變的量,整型變數表示的是整數類型的數據。
C語言誕生得非常早,當時人們普遍還習慣用匯編語言編寫軟體,並且沒有什麼統一,通用的操作系統,基本上軟體都是從0開始寫的。C語言的方針便是比匯編方便易用,一起不要損失匯編的表達能力。所以C語言可以看成是「高級的匯編」語言。
C語言的源代碼基本上可以非常容易地對應到匯編代碼,並且可以不需要什麼運行時環境的支撐。C的特點,簡單容易編譯,靈活貼近底層。所以一向到現在,一些需要直接和硬體打交道的軟體都還是用C語言寫的,比如(但不限於)Linux Kernel和一些嵌入式領域。
⑥ 64位系統下C語言中int值的取值范圍
64位機器中,int佔32位,取值范圍為-2147483648~2147483647(-2^32~2^32-1)。
int類型的情況:
shortint類型可能佔用比int類型更少的存儲空間,C保證short類型至少16位長,用於只需小數值的場合以節省空間。
longint類型(或簡寫為long類型)可能佔用比int類型更多的存儲空間,C保證short類型至少32位長,用於使用大樹枝的場合。
longlongint類型(或簡寫為longlong類型)可能佔用比long類型更多的存儲空間,C保證short類型至少64位長,用於使用更大數值的場合。
(6)c語言變數位數和取值范圍擴展閱讀
C語言的整型溢出問題int
int為4位元組32位,其中首位用0表示正數,用1表示為負數。因此對於
最大正數可以表示為:0x7fffffff(7的二進制為0111,f二進制為1111)
最大負數(-1)可以表示為:0xffffffff
最小負數可以表示為:0x80000000(8的二進制為1000)
負數為正數的源碼取反碼再取補碼,過程如下:
1、-1的原碼:
2、得反碼:
3、得補碼:
⑦ C語言各個數據類型取值范圍
C語言的數據基本類型分為字元型、整型、長整型以及浮點型,取值范圍如下:
c語言中關於變數的取值范圍的計算方法:
1、使用函數的返回值。將函數計算出的變數作為返回值返回給其它函數使用。
2、使用函數的參數。將函數參數設置為引用傳遞而不是值傳遞,就可以把函數計算出的變數通過此參數給其它函數使用。
3、使用全局變數。將函數計算出的值保存到全局變數中,其它函數就可以使用了。
(7)c語言變數位數和取值范圍擴展閱讀
C語言運算中的數據類型自動轉換原則
1、隱式轉換
C語言在以下四種情況下會進行隱式轉換:
(1)算術運算式中,低類型能夠轉換為高類型。
(2)賦值表達式中,右邊表達式的值自動隱式轉換為左邊變數的類型,並賦值給它。
(3)函數調用中參數傳遞時,系統隱式地將實參轉換為形參的類型後,賦給形參。
(4)函數有返回值時,系統將隱式地將返回表達式類型轉換為返回值類型,賦值給調用函數。
2、算數運算的隱式轉換
算數運算中,首先有如下類型轉換規則:
(1)字元必須先轉換為整數(C語言規定字元類型數據和整型數據之間可以通用)。
(2)short型轉換為int型(同屬於整型)。
(3)float型數據在運算時一律轉換為雙精度(double)型,以提高運算精度(同屬於實型)。
其次,有下面的規則。
當不同類型的數據進行操作時,應當首先將其轉換成相同的數據類型,然後進行操作,轉換規則是由低級向高級轉換。
⑧ 為什麼C語言中有符號整型變數的取值范圍是-32768~32767,麻煩詳細解釋一下
答:有符號整型變數的取值范圍是-32768~32767,這是過去16位計算機的int類型整數的表示範圍,因為16位二進制可表示65536個十進制數據,如果表示無符號整數則其范圍為:0 到 65535,而要表示有符號的十進制數據,那麼最高位就是符號位,正數的范圍為:0 到 32767,其二進制數就是:0000 0000 0000 0000 到 0111 1111 1111 1111;負數的范圍為:-1 到 -32768,其二進制數就是:1111 1111 1111 1111 到 1000 0000 0000 0000 ,兩者所表示數據的個數恰好是65536個十進制數據。