c語言的int型資料範圍和記憶體中儲存是什麼

時間 2021-09-02 07:15:46

1樓:大大的

1、nt型為帶符號整數型別,對於16位編譯器,int佔2位元組8位;對於32位和64位編譯器,int型佔4位元組32位。不同的占用空間,int型的範圍也不同:2位元組時,int 範圍為-32768~32767;4位元組時,int範圍為-2147483648~2147483647。

無論是哪種儲存方式,均是最高位為符號位,0代表正數,1代表負數。剩餘位儲存實際值。

2、字元是指計算機中使用的字母、數字、字和符號,包括:1、2、3、a、b、c、~!·#¥%……—*()——+等等。

在 ascii 編碼中,乙個英文本母字元儲存需要1個位元組。在 gb 2312 編碼或 gbk 編碼中,乙個漢字字元儲存需要2個位元組。

3、字元型資料在記憶體中儲存的是它的ascii碼值,它是乙個位元組,所有資料型別在記憶體中都是以0和1**二進位制儲存的,這個原則不會變。

4、在utf-8編碼中,乙個英文本母字元儲存需要1個位元組,乙個漢字字元儲存需要3到4個位元組。在utf-16編碼中,乙個英文本母字元或乙個漢字字元儲存都需要2個位元組(unicode擴充套件區的一些漢字儲存需要4個位元組)。在utf-32編碼中,世界上任何字元的儲存都需要4個位元組。

5、char是c/c++整型資料之一,其它的如int/long/short等不指定signed/unsigned時都預設是signed,char在標準中是unsigned,編譯器可以實現為帶符號的,也可以實現為不帶符號的,有些編譯器如psos的編譯器,還可以通過編譯開關來指定它是有符號數還是無符號數。

2樓:周文劍

位元組數:int型的位數一開始和作業系統的位數一樣,而1位元組=8位,所以位元組數一般是(作業系統位數/8),但64位系統中由於人們已經習慣int佔32位,所以int型位元組數如下:16位下2位元組,32位和64位下4位元組

無符號和有符號:有時候人們需要儲存的整數可正可負,這時候就要用有符號的整型儲存,也是預設的int型別;有時候只要儲存自然數,那麼就可以用無符號整型儲存,也就是unsigned int,也可以寫成unsigned

取值範圍:對於n個位元組的無符號整型其取值範圍為0~2^(n*8)-1,對於n個位元組的有符號整型其取值範圍為-2^(n*8-1)~2^(n*8-1)-1

至於記憶體中儲存的形式不清楚你的意思,請說具體一點

c語言中.int型資料在記憶體中的儲存形式是什麼?float呢?char呢?

3樓:封木秋

不管什麼型別的資料在計算機中都是用2進製儲存的。

int 是用4個位元組,32位二進位制儲存。

float 也是4個位元組,32個二進位制位儲存的。

而char 是用1個位元組,共8位二進位制儲存的。

4樓:新奕秀穎

記憶體中所有資料形式都是0和1,只是個種型別資料長度不同。

c++中

int長度為4位元組

float長度為4位元組

char長度為1位元組

5樓:匿名使用者

一般最基本的都是二進位制的!

c語言中int型數-8在記憶體中的儲存形式為:1111111111111000

6樓:與子如初見

負數是以補碼存的,求補碼的方法是符號位不變,其他位取反加一啊啊專啊1000 0000 0000 1000

取反是111 1111 1111 0111加一是11111 1111 1111 1000不是剛屬好麼

7樓:匿名使用者

-8在記憶體bai中的儲存形式為:1111111111111000這是du8的按位zhi取反+1的結果。

int型別可以dao簡寫為unsigned,也就是說,unsigned後不

版加其他權型別說明符就意味著是unsigned int。

一位元組表示八位,即:1byte = 8 bit;

int: 4byte = 32 bit 有符號signed範圍:2^31-1 ~ -2^31即:

2147483647 ~ -2147483648無符號unsigned範圍:2^32-1 ~ 0即:4294967295 ~ 0

c語言int的取值範圍

8樓:天雲一號

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

9樓:枕邊吹風會

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標準新增)

10樓:匿名使用者

二進位制數在計算機內儲存的是其補碼

對於有符號數,正數的補碼和本身一樣,負數的補碼是本身的數字位取反後加1

比如:1=(0001)補=(0001)

-1=(1001)補=(1111)

計算機儲存-1就是儲存的1111

因此當int表示範圍為16位時,可以表示的最大負數為:

10000...0000(後面有15個0)相當於-0

但這其實是-32768=110000...0000(第一位符號位,後面有15個0)的補碼表示

可以理解為16位的int足可以表示-32768的補碼

11樓:匿名使用者

正數範圍是0000 0000 0000 0001到0111 1111 1111 1111應該都理解。

負數範圍要了解計算機內部表示負數的方法,「2的補碼」,具體方法分兩步:

第一步,每乙個二進位制位都取相反值,0變成1,1變成0。

第二步,將上一步得到的值加1。

比如要表示16位的-1,就把+1也就是0000 0000 0000 0001取反變為1111 1111 1111 1110,再+1,所以1111 1111 1111 1111表示-1。

那麼要知道計算機表示的乙個負數的絕對值就要把這個負數按照上面所說的「2的補碼」規則反處理。所以16位能表示的最小負數,也就是符號位為1,其餘全部為0,即1000 0000 0000 0000。

(這裡比較難理解為什麼確定符號為1,後面要全部取0,主要是為了經過反處理後得到乙個盡量大的數值,也就是最左邊位置2^15位上的值為1,這樣才能得到最小的負數。)

第一步,1000 0000 0000 0000(處理時,這是乙個二進位制數值,1不再是符號) 減去1得到 0111 1111 1111 1111。

第二步,取反,變為1000 0000 0000 0000,即1*2^15,32768。

所以最小是1000 0000 0000 0000,-32768。

12樓:匿名使用者

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

-32768的轉換過程是:

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

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

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

13樓:匿名使用者

在寫程式的時候最好用c庫定義好的巨集或函式,因為int的範圍因機器而異。為了避免在程式中直接寫死最大值。

c庫會用條件編譯根據你的機器選擇正確的最大值。

這個**包括各種型別的最大值

如果是c++的話看這個:

#include

#include

using namespace std;

int main(int,char**)

14樓:匿名使用者

1000 0000 0000 0000不是-0是-1所以1000 0000 0000 0001是-2而0000 0000 0000 0001是1明白了?

求教c語言從鍵盤輸入整型資料int型編寫

風若遠去何人留 include include int main int i scanf s num printf s dbits n num,strlen num for i 0 num i i if num i 9 num i 0 cnt num i 0 for i 0 i 10 i if cn...

c語言中int型變數加上double型的變數

程振 會將int型別轉換成double型別再與double型別的變數相加。型別不一樣的數相加,首先將型別轉換成一樣的然後相加,轉換原則,短型別向長型別看齊,長短指在記憶體中所佔空間的長短 得出的結果是double型.這個不需要強制轉換的,系統會自動轉換的. double,計算時會自動轉化之doubl...

C語言的int型別變數範圍是多少

育知同創教育 c 語言的 int 型別變數範圍是 32,768 to 32,767 或者 2,147,483,648 到 2,147,483,647 測試int變數的位元組數 include include int main 結果 storage size for int 4說明int型變數占用4個...