c語言整型資料int佔幾個位元組,c語言int佔幾個位元組?

時間 2021-10-17 02:38:57

1樓:加百列

不同的編譯器,佔據的位元組也不同,具體如下表所示:

編譯器可以根據自身硬體來選擇合適的大小,但是需要滿足約束:short和int型至少為16位,long型至少為32位,並且short型長度不能超過int型,而int型不能超過long型。這即是說各個型別的變數長度是由編譯器來決定的,而當前主流的編譯器中一般是32位機器和64位機器中int型都是4個位元組。

2樓:匿名使用者

1、16位編譯器

char :1個位元組

char*(即指標變數): 2個位元組

short int : 2個位元組

int: 2個位元組

unsigned int : 2個位元組

float: 4個位元組

double: 8個位元組

long: 4個位元組

long long: 8個位元組

unsigned long: 4個位元組

2、32位編譯器

char :1個位元組

char*: 4個位元組

short    int : 2個位元組

int: 4個位元組

unsigned int : 4個位元組

float: 4個位元組

double: 8個位元組

long: 4個位元組

long long: 8個位元組

unsigned long: 4個位元組

整型資料的一般分類如下:

1、基本型:型別說明符為int,在記憶體中佔2個位元組。

2、短整型:型別說明符為short int或short。所佔位元組和取值範圍均與基本型相同。

3、長整型:型別說明符為long int或long,在記憶體中佔4個位元組。

4、無符號型:型別說明符為unsigned。無符號型又可與上述三種型別匹配而構成:

1)無符號基本型:型別說明符為unsigned int或unsigned。

2)無符號短整型:型別說明符為unsigned short。

3)無符號長整型:型別說明符為unsigned long。

3樓:匿名使用者

根據編譯器了,不同的編譯器,規定是不一樣。ansi標準定義int是佔2個位元組,tc是按ansi標準的,它的int是佔2個位元組的。但是在vc裡,乙個int是佔4個位元組的。

4樓:

在16位 int是2個位元組,long是4個位元組。在32位 int是4個位元組,long是4個位元組。在64位 int是4個位元組,long是8個位元組。

一般long比short,int都長。在32位 long long 是8個位元組。

5樓:

short int是2位元組

long int是4位元組

int在tc上是2位元組,現在大多用vc或gcc是4位元組

6樓:匿名使用者

短整型2個,整型 4個位元組,長整型8個位元組

不同環境不一樣

7樓:

32位系統:int是4位元組

8樓:匿名使用者

看編譯器。

你可以用

sizeof(short)

sizeof(int)

sizeof(float)

看一下就知道幾個位元組。

c語言int佔幾個位元組?

9樓:敲黑板劃重點

在一般的電腦中,int占用4位元組,32位元,資料範圍為-2147483648~2147483647[-2^31~2^31-1]

在之前的微型機中,int占用2位元組,16位元,資料範圍為-32768~32767[-2^15~2^15-1]

使用printf輸出int占用位元組數量:

printf("%d",sizeof(int));

除了int型別之外,還有short、long、long long型別可以表示整數。

unsigned int 表示無符號整數,資料範圍為[0~2^32-1]

10樓:禚菊忻子

根據編譯器了,不同的編譯器,規定是不一樣。ansi標準定義int是佔2個位元組,tc是按ansi標準的,它的int是佔2個位元組的。但是在vc裡,乙個int是佔4個位元組的。

11樓:夜禮服假面

依據程式編譯器的不同,int定義的位元組數不同。(資料占用記憶體儲器的大小不同)

常用的微控制器編譯器,如keil下,51類微控制器的c語言中,int代表2個位元組(16位);如果是32位ram處理器的c語言中,則int代表4個位元組(32位)

pic微控制器的picc中8位系列微控制器的c語言裡int表示16位。

而不少pc端軟體的編譯器則會根據作業系統或處理器(如64位xp)把int定義為8位元組(64位)

所以在多平台上程式設計的人員需要在使用時注意。

如需定義16位數,可使用short(短、短整數型別)定義。

c語言基本整型的資料範圍什麼意思

12樓:匿名使用者

基本整型變數,所佔位元組數為2,每個位元組等於八位二進位制數,可以用0和1表示的八位二進位制數,2個位元組也就是16位二進位制。

最高位表示正負,所以用0和1組成的16位數字範圍為-2的15次方~2的15次方,也就是-32768~32767。因此基本整型變數資料範圍是-32768~32767。

13樓:匿名使用者

int佔4個位元組,乙個位元組4位,則它的空間有2的16次方byte,若有unsigned修飾,則說明它是無符號整型資料,它的範圍為0~65535,若沒有unsigned修飾,則說明最高位為符號位,它的範圍為-32768~32767

對於無符號數,比較簡單,根據占用的位數可以直接計算:

unsigned short     16位      0~2的16次方-1(即65535)

unsigned int         16位      0~2的16次方-1(即65535)

unsigned long      32位      0~2的32次方-1(即4294967295)

對於有符號數,由於符號位占用一位,並且負數要用補碼表示。

以8位資料為例:2進製的11111111表示-1,10000000表示-128,所以負數範圍-128~-1;2進製00000000表示0,01111111表示127,所以正數範圍0~127。合起來就是-128~127,找一下規律發現是- 2的(8-1)次方~2的(8-1)次方-1,那麼就可以得到任何位數的範圍:

short     16位      - 2的(16-1)次方~2的(16-1)次方-1(即-32768~32767)

int         16位      - 2的(16-1)次方~2的(16-1)次方-1(即-32768~32767)

long      32位      - 2的(32-1)次方~2的(32-1)次方-1(即-2147483648~2147483648)

擴充套件資料:

(1)char:字元型資料,屬於整型資料的一種,占用乙個位元組

(2)unsigned char:無符號字元型資料,屬於整型資料的一種,占用乙個位元組

(3)short:短整型資料,屬於整型資料的一種,占用兩個位元組

(4)unsigned short:無符號短整型資料,屬於整形資料的一種,占用兩個位元組

(5)int:整形資料,屬於整型資料的一種,占用四個位元組

(6)unsigned int:無符號整型資料,屬於整型資料的一種,占用四個位元組

(7)long:長整型資料,屬於整型資料的一種,占用四個位元組

(8)unsigned long:無符號長整型資料,屬於整形資料的一種,占用四個位元組

實 型 變 量 的 類 型 有 float和 double兩 種 ,下 表 列 出 這 兩 種 型別所 佔 內 存 的 位數 和 其 表 示 範 圍 。資料型別 所佔位數 數的範圍:

float 32 3.4e-038~3.4e+038

double 64 1.7e-308~1.7e+308

雙 精 度 類 型 double比 單 精 度 類 型 float具 有 更 高 的 精 度 和更大 的 表 示 範 圍 ,常 常 使 用 。

14樓:薔祀

整型變數int佔4個位元組,乙個位元組4位,則它的空間有2的16次方byte,若有unsigned修飾,則說明它是無符號整型資料,它的範圍為0~65535。若沒有unsigned修飾,則說明最高位為符號位,它的範圍為-32768~32767。

int是資料庫中一種資料型別,同時,作為函式,int函式指資料庫中常用函式中的「向下取整函式」。常用來取乙個數中的整數部分。int是將乙個數值向下取整為最接近的整數的函式。

為取整函式。

擴充套件資料

c語言中其他資料的取值範圍:

①短整型:

型別說明符為short int或short'c110f1。所佔位元組和取值範圍會因不同的編譯系統而有差異。對於16字機,short int 佔2個位元組,在大多數的32位機中,short int 佔4個位元組。

但總的來說,short int 至少16位,也就是2個位元組。

②長整型:

型別說明符為long int或long ,在記憶體中佔4個位元組,其取值為長整常數。在任何的編譯系統中,長整型都是佔4個位元組。在一般情況下,其所佔的位元組數和取值範圍與基本型相同。

③無符號型:

型別說明符為unsigned。在編譯系統中,系統會區分有符號數和無符號數,區分的根據是如何解釋位元組中的最高位,如果最高位被解釋為資料位,則整型資料則表示為無符號數。

15樓:匿名使用者

1 位元組 = 8位

int型 2位元組 = 16位

按vc++和c++的規定,int和long等長,都是32位的。short才是16位的。只有原始的c才定義int和short等長為16位。

這個資料範圍指的確實是具體 int的取值範圍,但不是你理解的那樣。

現在以16位的short為例。

首先必須清楚乙個概念,計算機中存放的資料都是以二進位制形式存放的。short存放的是整型資料,是用固定位數16個二進位制位來表示乙個整數,不足16位補0。

比如125的二進位制是1111101,那麼在記憶體中存放就是

0000 0000 0111 1101

那麼16個二進位制位能夠表示多少種不同的整數呢?稍微用點數學常識就知道,是2的16次方,也就是65536個不同的整數。所以對於無符號整數,unsigned short的範圍就是0~65535。

而為了表示負數,計算機用short的第一位作為符號位來表示正負。注意,計算機中是以補碼的形式存放整數的。對於正數,補碼是其本身;對於負數,其補碼是對其絕對值的按位取反,再加1的結果。

舉個簡單的例子:

125是0000 0000 0111 1101

-125計算過程:

125是0000 0000 0111 1101

按位取反,1111 1111 1000 0010

再加1,1111 1111 1000 0011

所以-125就是1111 1111 1000 0011。

補碼不是三言兩語能講得清楚的,樓主有個概念即可。

我們發現,正數的補碼首位都是0,負數的補碼首位都是1。

short有符號型的範圍是-32768~32767。

那麼,如果超出了範圍,會發生什麼現象呢?

很簡單,這稱為溢位。

比如short a = 32768

32768是1000 0000 0000 0000。還記得我講過嗎?正數的補碼首位都是0,但這裡首位為1,這是怎麼回事呢?

其實因為浪費了1位做符號位,short的有效位數只是15位而已,而2的15次方是32768,因此正數的範圍是0~32767,32768超出了範圍,計算機怎麼處理呢?結果就是把它當作負數,根據補碼計算它的原碼。反過來即可

1000 0000 0000 0000 減1,

0111 1111 1111 1111 再按位取反,

1000 0000 0000 0000 就是32768

所以1000 0000 0000 0000表示-32768

也就是說short a = 32768;把a輸出來得到-32768樓主可以試驗一下。

再舉一例:

unsigned short a=65536;

65536是1 0000 0000 0000 0000 注意這已經是17位了。計算機會自動擷取後面的16位

就是得到0000 0000 0000 0000,也就是0

所以unsigned short a=65536;輸出a得到0。

明白了嗎?

c語言的int佔幾個位元組,char佔幾個位元組

高昊 char 1個位元組 char 即指標變數 4個位元組 32位的定址空間是2 32,即32個bit,也就是4個位元組。同理64位編譯器 short int 2個位元組 int 4個位元組 unsigned int 4個字 float 4個位元組 double 8個位元組 long 4個位元組 ...

c語言 char佔幾個位元組,C語言的int佔幾個位元組,char佔幾個位元組?

浩笑工坊 只佔一個位元組。char用於c或c 中定義字元型變數,只佔一個位元組,取值範圍為 128 127 2 7 2 7 1 c語言中如int long short等不指定signed或unsigned時都預設為signed,但char在標準中不指定為signed或unsigned,編譯器可以編譯...

c語言字元數佔幾個位元組又是多少位

這個要看字元數是什麼資料型別,可以用sizeof 型別 操作符來測試位元組數。1 英文字母 如果是char 型,那麼是佔用1個位元組,8位。如果是string型,應該是兩個位元組,16位,因為末尾還有個 0字元。比如 char c a 它佔用一個字元 char c a 佔用兩個。char c abc...