機器字長:是指計算機進行一次整數運算所能處理的二進位制資料的位數(整數運算即定點整數運算)。機器字長也就是運算器進行定點數運算的字長,通常也是cpu內部資料通路的寬度。現在一般為32位即4個位元組,也有64位和16位的。
算術型別的儲存空間按照機器而定。一般,short型別為半個機器字長,int為乙個機器字長,long為1或2個機器字長,float為乙個機器字長,double為兩個字,long double用3或4個字長。c++標準規定的是每個算術型別的最小儲存空間,但其並不阻止編譯器用更大的儲存空間。如果要保證移植性,盡量用__int16 __int32 __int64吧,或者自己typedef int int32一下。
資料型別名稱
位元組數
別名
取值範圍
int
*signed,signed int
由作業系統決定,即與作業系統的"字長"有關
unsigned int
*unsigned
由作業系統決定,即與作業系統的"字長"有關
__int8
1char,signed char
–128 到 127
__int16
2short,short int,signed short int
–32,768 到 32,767
__int32
4signed,signed int
–2,147,483,648 到 2,147,483,647
__int648無
–9,223,372,036,854,775,808 到 9,223,372,036,854,775,807
bool1無
false 或 true
char
1signed char
–128 到 127
unsigned char1無
0 到 255
short
2short int,signed short int
–32,768 到 32,767
unsigned short
2unsigned short int
0 到 65,535
long
4long int,signed long int
–2,147,483,648 到 2,147,483,647
long long
8none (but equivalent to __int64)
–9,223,372,036,854,775,808 到 9,223,372,036,854,775,807
unsigned long
4unsigned long int
0 到 4,294,967,295
enum*無
由作業系統決定,即與作業系統的"字長"有關
float4無
3.4e +/- 38 (7 digits)
double8無
1.7e +/- 308 (15 digits)
long double8無
1.7e +/- 308 (15 digits)
wchar_t
2__wchar_t
0 到 65,535
(p:指標的大小為定值4個位元組)
資料型別位元組數
一 程式執行平台 不同的平台上對不同資料型別分配的位元組數是不同的。個人對平台的理解是cpu os compiler,是因為 1 64位機器也可以裝32位系統 x64裝xp 2 32位機器上可以有16 32位的編譯器 xp上有tc是16位的,其他常見的是32位的 3 即使是32位的編譯器也可以弄出6...
c 基礎資料型別位元組數
int,long int,short int的寬度都可能隨編譯器而異。但有幾條鐵定的原則 ansi iso制訂的 下面給出不同位數編譯器下的基本資料型別所佔的位元組數 16位編譯器 char 1個位元組 char 即指標變數 2個位元組 short int 2個位元組 int 2個位元組 unsig...
資料型別所佔位元組數
一 32位平台 分為有符號型與無符號型。有符號型 short 在記憶體中佔兩個位元組,範圍為 2 15 2 15 1 int 在記憶體中佔四個位元組,範圍為 2 31 2 31 1 long在記憶體中佔四個位元組,範圍為 2 31 2 31 1 無符號型 最高位不表示符號位 unsigned sho...