⑴ c語言類型所佔位元組數
類型
常見的有char、int、long、short、float、double及指針等.
字元類型
這里單只char,char變數在內存中存儲的是字元對應的ASCII碼值。所以長度也是固定的,為1個位元組。
整數類型
查了資料發現對各個類型的整數佔用位元組數是有一個規定的,雖然16位32位或者64位的機子各種類型所佔用的長度並不一樣。規則如下:
short 至少佔用2個位元組。
int 建議為一個機器字長。32位環境下機器字長為4位元組,64位環境下機器字長為8位元組。
short 的長度不能大於 int,long 的長度不能小於 int。
所以說,short並不一定短,long並不一定短,有可能都和int一樣長。
浮點數(小數)
C中浮點數有兩種,float和double,不像整數,小數的長度始終是固定的,float佔用4個位元組,double佔用8個位元組。
指針
C中指針即為地址,所以編輯器的定址空間則是指針的地址范圍。所以指針變數在32位機器的定址空間為2^32,要將所有地址都表示出來則需要為4個位元組長度,所以要佔用4個位元組長度。同理64位的編譯器則需要8個位元組長度。
⑵ 在C語言中各種數據類型各佔多少位
(一)32位平台:
分為有符號型與無符號型。
有符號型:
short 在內存中占兩個位元組,范圍為-2^15~(2^15-1)
int 在內存中佔四個位元組,范圍為-2^31~(2^31-1)
long在內存中佔四個位元組,范圍為-2^31~2^31-1
無符號型:最高位不表示符號位
unsigned short 在內存中占兩個位元組,范圍為0~2^16-1
unsigned int 在內存中佔四個位元組,范圍為0~2^32-1
unsigned long在內存中佔四個位元組,范圍為0~2^32-1
實型變數:
分單精度 float 和雙精度 double 兩種形式:
float:佔四個位元組,提供7~8位有效數字。
double: 佔八個位元組,提供15~16位有效數字。
(二)16位平台:
1)整型(基本型):類型說明符為int,在內存中佔2個位元組。
2)短整型:類型說明符為short int或short。所佔位元組和取值范圍均與整型(基本型)相同。
3)長整型:類型說明符為long int或long,在內存中佔4個位元組。
無符號型:類型說明符為unsigned。
無符號型又可與上述三種類型匹配而構成:
各種無符號類型量所佔的內存空間位元組數與相應的有符號類型量相同。但由於省去了符號位,故不能表示負數。
實型變數:
分為單精度(float型)、雙精度(double型)和長雙精度(long double型)三類。
單精度型佔4個位元組(32位)內存空間,其數值范圍為3.4E-38~3.4E+38,只能提供七位有效數字。
雙精度型佔8 個位元組(64位)內存空間,其數值范圍為1.7E-308~1.7E+308,可提供16位有效數字。
長雙精度型16 個位元組(128位)內存空間,可提供18-19位有效數字。
⑶ C語言中字元佔多少個位元組
1、在32位系統中:
char(1)位元組
short(2)位元組
int(2)位元組
long(4)位元組
char*(4)位元組
int*(4)位元組
int**(4)位元組
2、在64位系統中:
char(1)位元組
short(2)敏姿位元組
int(4)位元組
long(8)位元組
char*(4)位元組
int*(4)位元組
int**(4)位元組
擴橋薯絕展資料
在C++中short佔2字手鎮節,int、float、long都佔4位元組,double佔8位元組。
指針長度和地址匯流排有關。因為指針記錄的就是一個地址,那麼32位的就是4位元組,64位的就是8位元組。
char佔1位元組,short佔2位元組,int、float、long都佔4位元組,double佔8位元組,任意類型的指針都佔4個位元組。
⑷ 一個數字在C語言中是多少個位元組
在C語言中,一個數字佔4個位元組或8個位元組。(以下試驗都是基於32位計算機系統)
當該數字為整數時,佔4個位元組(默認轉換為int類型);
當該數字為小數時,佔8個位元組(默認轉換為double類型)。
可以通過如下的程序段來驗證:
printf("%d\n",
sizeof(4));
//
輸出4,即佔4個位元組(轉換為int類型,相當於sizeof(int))
printf("%d\n",
sizeof(4.5));
//
輸出8,即佔8個位元組(轉換為double類型,相當於sizeof(double))
⑸ c語言int佔用幾個位元組啊
在C/C++語言中,int和long int的所佔的位元組數與編譯器有關。
不過現在常用的編譯器多認為int和long int相同,均為4位元組,short為2位元組,char為1位元組。
如果只輸入int,它是可以包含以上三種形式。
不同的語言不太一樣,例如在Pascal中integer為2位元組,byte為1位元組,而longint為4位元組。
建議您最好參考您桐襲的編譯器的具體幫助,以得到更准確的信息。
使用前最好sizeof(int) 看看當前編譯器如何定義的。
依據程序編譯器的不同,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(短、短整數類型)定義。
(5)c語言中占幾個數據位元組擴展閱讀:
在一般的電腦中,int佔用4位元組,32比特,數據范圍為-2147483648~2147483647[-2^31~2^31-1]。
在之前的微型機中,int佔用2位元組,16比特,數據范圍為卜輪消-32768~32767[-2^15~2^15-1]。
使用printf輸出int佔用位元組數量:
除了int類型之外,還有short、long、long long類型可以表示整數。
unsigned int 表示無符號整數,數據范圍為[0~2^32-1]。
參考鏈接:INT(數據類型)_百型知度網路
⑹ C語言字元數占幾個位元組,又是多少位。
這個要看字元數是什麼數據類型,可以用sizeof(類型)操作符來測試位元組數。
1、英文字母:如果是char 型,那麼是佔用1個位元組,8位。如果是string型,應該是兩個位元組,16位,因為末尾還有個\0字元。
比如:
char c = 'a';//它佔用一個字元
char c[] = "a";//佔用兩個。
char c[] = "abcde";//佔用4+1 = 5 個,結尾有一個'\0'
2、數字:有很多種類,從小到大分別為:
short、int、float、long、double
位元組為:1個、2個、4個、8個、8個
位數為:8位、16位、32位、64位、64位
3、漢字:理論上說,一個漢字佔用兩個位元組,16位。比如:中國,就佔用4個位元組,例如:
char c[] = "中國";//佔用4+1 = 5個字元
⑺ C語言中,一個位元組到底有多少個字元
我真的搞不清楚你到底想問什麼,而且你有的表述也不準確嚴謹
所以只好把基本的單位先說下。
比特(bit)即一個二進制位 例如100011就是6比特
位元組(byte)這是計算機中數據類型最基本的單位了,8bit 組成1byte
字(word)銀悉兩個byte稱為一個word,所以字大小應該是16位bit,共兩位元組
雙字(double word 簡寫為DWORD)見名知意,兩個字,四個位元組,32bit
在C語言中,每種數鋒簡乎據類型都有其存儲長度。而且在特定的平台和特定的編譯器下是不一樣的。
由於WIN32平台用的很多,使用visual studio來做C程序的也有很多(我就是使用visual studio 6.0來學習C語言的),所以我說下這種情況(在Visual C++ 2005 中的)。
char 字元型 佔1byte 即8位,一個char型數據(例如:a、#、!之類的)用了1個位元組來存儲
unsigned char 無符號的字元型 佔1byte 即8位 它主要是為了能夠兼容擴展ASCII碼,由於 char 由8位表示表示範圍為 -128 - +127,無法表示帶上擴展ASCII碼總共256個字元所以如果把 8位中的最高位符號位也用來計數,就可以正好表示256個字元,unsigned char 表示範圍為 0 - 255 正好256個數可以對應包含擴展ASCII碼在內的共計256個ASCII字元
漢字在計算機中存儲是使用機內碼(一種數字編號)來存儲的,而常用漢字不過是幾萬個,如果用16位比特(即2的16此方等於65536)就可以表示了,所以漢字字元存儲使用了兩個位元組。每兩個位元組即16bit對應一個漢字。
int 整型數據 佔4byte 即32位,一個int型數據的長度用了4個位元組來存儲
short 短整型 佔2byte 即16位,兩個位元組。
long 長整型 佔4byte 即32為咐鬧,四個位元組
float 單精度浮點型 佔4byte 即32位,四個位元組
double 雙精度浮點型 佔8byte 即64位,八個位元組
假如你使用的不是 visual studio 編譯器 或者不是在win32環境下編程,以上的陳述可能就不對,我建議你查看一下 可以使用int i = sizeof(char)或者
sizeof(int)來看看i的值,如果i == 4,表示一個當前的數據類型佔四個位元組
⑻ C語言中,各種類型的整型數據在內存中都佔用4個位元組嗎
不是。
C標准並沒有具體給出規定哪個基本類型應該是多少個位元組數,而且這個也與OS、編譯器有關,比如同樣是在32位操作系統,VC++的編譯器下int類型為4個位元組,而在tuborC下則是2個位元組。
整型類型在雖然16位、32位或者64位的機子各種類型並不一樣,但有幾條規則(ANSI/ISO制定):
short至少佔用2個位元組。
int建議為一個機器字長,32位環境下為4位元組,64位環境下為8位元組。
short的長度不能大於int,long的長度不能小於int。
(8)c語言中占幾個數據位元組擴展閱讀
整型數據分為基本整形(int)、短整型(short int)、長整型(long int)以及新添加的雙長整型(long long int)。
基本整形(int):一般占據2個或者4個位元組,這都是有編譯系統決定的。一般來講在vc中計算機給它分配4個位元組,在計算機中整型數據一般是按補碼和銷段的形式存儲的。
短整型(short int):在vc中計算機分配給喚譽短整型的內存大小為2個位元組。存儲方式與基本整形相同,一個短整型的數據范圍是:-32768-32767。
長整型數斗畢據(long int):在vc中系統分配給它4個位元組,多以一個長整型數據的范圍為-2的31次方到2的31次方減一。
雙長整型(long long int):在vc中系統給它分配8個位元組,這種數據類型一般比較少用。
⑼ C語言中一個英文字母.漢字.數字 分別都占幾個位元組啊
1、英文字母:如果是char 型,那麼是佔用1個位元組,如果是string型,應該是兩個。
char c = 'a';//它佔用一個字元
char c[] = "a";//佔用兩個。
char c[] = "abcde";//佔用4+1 = 5 個,結尾有一個'