C/C++-基本データ型(デフォルト:32ビットオペレーティングシステム)


short [int]
メモリサイズ2 byte=16 bit
データ範囲-32768~32767(すなわち-2^15~2^15-1)
unsigned short [int]
メモリサイズ2 byte=16 bit
データ範囲0~65535(すなわち0~2^16-1)
int
メモリサイズ4 byte=32 bit
データ範囲-2174483648~2174483647(すなわち-2^31~2^31-1)
備考C言語規定:どのプラットフォームでもlong型占有バイト数がint型より小さくなく、int型がshort型より小さくないことを保証する.
int型は異なるビット数のオペレーティングシステムで占有されるバイト数が異なり、移植性の良いプログラムを書くには、昔16ビットと32ビットのオペレーティングシステムが流行していたときにlongでint型を修飾したほうがいいが、現在は32ビットと64ビットのオペレーティングシステムが流行しており、intを使うことが多い.もちろん、これらはあなたがどのように理解しているかによって決まります.結局、異なるオペレーティングシステムに占めるバイト数は固定されていないので、それぞれに適用点があり、その良し悪しは定かではありません.
unsigned int
メモリサイズ4 byte=32 bit
データ範囲0~4294967295(すなわち0~2^32-1)
long [int]
メモリサイズ4 byte=32 bit
データ範囲-2174483648~2174483647(すなわち-2^31~2^31-1)
注記short,int,longはデフォルトでシンボル型で、longとintは4バイトの空間サイズを占めていますが、どのような違いがありますか?
16ビットオペレーティングシステム:long:4バイト、int:2バイト
32ビットオペレーティングシステム:long:4バイト、int:4バイト
64ビットオペレーティングシステム:long:8バイト、int:4バイト
unsigned long [int]
メモリサイズ4 byte=32 bit
データ範囲0~4294967295(すなわち0~2^32-1)
long long [int]
メモリサイズ8 byte=64 bit
データ範囲-922337203685475808~922337203685475807(すなわち-2^64~2^64-1)
unsigned long long [int]
メモリサイズ8 byte=64 bit
データ範囲0~18446744073709551615(すなわち0~2^64-1)
unsigned char(byte)
メモリサイズ1 byte=8 bit
データ範囲0~255(すなわち0~2^8-1)
singned char
メモリサイズ1 byte=8 bit
データ範囲-128~127(すなわち-2^7~2^7-1)
bool
メモリサイズ1 byte=8 bit
データ範囲false or true(0 or 1)
注記はfalseまたはtrueの2つの値しか取れません.したがって、最小値は0、最大値は1です.
float
メモリサイズ4 byte=32 bit
データ範囲(1.17549 e-038)~(3.40282 e+038)
メモ浮動小数点数はメモリに科学的なカウント法で格納されており、浮動小数点数の精度は末尾数の桁数で決定されているので、深く追究する必要はありません.
double
メモリサイズ8 byte=64 bit
データ範囲(2.2257 e-308)~(1.79769 e+308)
備考どのようにこの2つの浮動小数点のタイプを区別して使うか、まずfloatとdoubleの精度は異なって、floatは小数点の後ろの7位まで保留して、doubleは小数点の後ろの16位まで保留して、floatは6位の有効な数字を保証することができて、doubleは15位の有効な数字を保証することができて、もし精度を追求しない情況の下でもちろんfloatを使うのが比較的に良いならば、メモリを節約して、高い精度が必要な場合はdoubleを使用したほうがいいです.普段、浮動小数点型変数を定義するにはdoubleを使用しますが、精度が高いので、一般的な精度の損失は無視できません.
ししん
メモリサイズ4 byte=32 bit
備考64ビットシステム=8 byte
// 16    
char :1   
unsigned char :1   
char*(     ): 2   
short int : 2   
int:  2   
unsigned int : 2   
float:  4   
double:   8   
long:   4   
long long:  8   
unsigned long:  4   


// 32    
char :1   
unsigned 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   
long long:  8   
unsigned long:  4   


// 64    
char :1   
unsigned char :1   
char*(     ): 8   
short int : 2   
int:  4   
unsigned int : 4   
float:  4   
double:   8   
long:   8   
long long:  8   
unsigned long:  8