整型表(C# 参考)
类型 | 范围 | 大小 |
-128 到 127 | 有符号 8 位整数 | |
0 到 255 | 无符号 8 位整数 | |
U+0000 到 U+ffff | 16 位 Unicode 字符 | |
-32,768 到 32,767 | 有符号 16 位整数 | |
0 到 65,535 | 无符号 16 位整数 | |
-2,147,483,648 到 2,147,483,647 | 有符号 32 位整数 | |
0 到 4,294,967,295 | 无符号 32 位整数 | |
-9,223,372,036,854,775,808 到 9,223,372,036,854,775,807 | 有符号 64 位整数 | |
0 到 18,446,744,073,709,551,615 | 无符号 64 位整数 |
如果整数表示的值超出了 ulong 的范围,将产生编译错误。
浮点型表(C# 参考)
类型 | 大致范围 | 大小 | 精度 |
±1.5e−45 到 ±3.4e38 | 32位 | 7 位 | |
±5.0e−324 到 ±1.7e308 | 64位 | 15 到 16 位 |
decimal(C# 参考)
decimal 关键字表示 128 位数据类型。同浮点型相比,decimal 类型具有更高的精度和更小的范围,这使它适合于财务和货币计算。decimal 类型的大致范围和精度如下表所示。
类型 | 大致范围 | 精度 | .NET Framework 类型 |
decimal | ±1.0×10-28到 ±7.9×1028 | 28 到 29 位有效位 |
默认值表(C# 参考)
值类型 | 默认值 |
false | |
0 | |
'/0' | |
0.0M | |
0.0D | |
表达式 (E)0 产生的值,其中 E 为 enum 标识符。 | |
0.0F | |
0 | |
0L | |
0 | |
0 | |
将所有的值类型字段设置为默认值并将所有的引用类型字段设置为 null 时产生的值。 | |
0 | |
0 | |
0 |
内置类型表(C# 参考)
C# 类型 | .NET Framework 类型 |
System.Boolean | |
System.Byte | |
System.SByte | |
System.Char | |
System.Decimal | |
System.Double | |
System.Single | |
System.Int32 | |
System.UInt32 | |
System.Int64 | |
System.UInt64 | |
System.Object | |
System.Int16 | |
System.UInt16 | |
System.String |
Storage of Basic Types(C)
Sizes of Fundamental Types
Type | Storage |
char, unsigned char, signed char | 1 byte |
short, unsigned short | 2 bytes |
int, unsigned int | 4 bytes |
long, unsigned long | 4 bytes |
float | 4 bytes |
double | 8 bytes |
long double | 8 bytes |
Data Type Ranges(MS C++)
For 32-bit and 64-bit compilers, Microsoft Visual C++ recognizes the types shown in the table below. Note that the following type also have unsigned forms:
- int (unsigned int)
- __int8 (unsigned __int8)
- __int16 (unsigned __int16)
- __int32 (unsigned __int32)
- __int64 (unsigned __int64)
- short (unsigned short)
- long (unsigned long)
- long long (unsigned long long)
Type Name | Bytes | Other Names | Range of Values |
int | 4 | signed | –2,147,483,648 to 2,147,483,647 |
unsigned int | 4 | unsigned | 0 to 4,294,967,295 |
__int8 | 1 | char | –128 to 127 |
unsigned __int8 | 1 | unsigned char | 0 to 255 |
__int16 | 2 | short, short int, signed short int | –32,768 to 32,767 |
unsigned __int16 | 2 | unsigned short, unsigned short int | 0 to 65,535 |
__int32 | 4 | signed, signed int, int | –2,147,483,648 to 2,147,483,647 |
unsigned __int32 | 4 | unsigned, unsigned int | 0 to 4,294,967,295 |
__int64 | 8 | long long, signed long long | –9,223,372,036,854,775,808 to 9,223,372,036,854,775,807 |
unsigned __int64 | 8 | unsigned long long | 0 to 18,446,744,073,709,551,615 |
bool | 1 | none | false or true |
char | 1 | none | –128 to 127 by default 0 to 255 when compiled with /J |
signed char | 1 | none | –128 to 127 |
unsigned char | 1 | none | 0 to 255 |
short | 2 | short int, signed short int | –32,768 to 32,767 |
unsigned short | 2 | unsigned short int | 0 to 65,535 |
long | 4 | long int, signed long int | –2,147,483,648 to 2,147,483,647 |
unsigned long | 4 | unsigned long int | 0 to 4,294,967,295 |
long long | 8 | none (but equivalent to __int64) | –9,223,372,036,854,775,808 to 9,223,372,036,854,775,807 |
unsigned long long | 8 | none (but equivalent to unsigned __int64) | 0 to 18,446,744,073,709,551,615 |
enum | varies | none | See Remarks. |
float | 4 | none | 3.4E +/- 38 (7 digits) |
double | 8 | none | 1.7E +/- 308 (15 digits) |
long double | same as double | none | same as double |
wchar_t | 2 | __wchar_t | 0 to 65,535 |