标签:false logs 指定 data 进制 声明 笔记 href sum
1.算术类型分为两类:整型和浮点型。算术类型的尺寸在不同机器上有所差别,下表列出了C++标准规定的尺寸的最小值。同时允许编译器赋予这些类型更大的尺寸。

一个char的大小和一个机器字节一样。
一个int至少和一个short一样大;
一个long至少和一个int一样大;
一个long long至少和一个long一样大;
以下摘自MSDN:
| 类别 | 类型 | 内容 |
|---|---|---|
| 整数 | char |
类型 char 是通常包含基本执行字符集成员的整数类型 - 默认情况下,这是 Microsoft C++ 中的 ASCII。C++ 编译器将 char、signed char 和 unsigned char 类型的变量视为不同类型。char 类型的变量将提升到 int,就像它们在默认情况下是 signed char 类型一样,除非使用 /J 编译选项。 在这种情况下,它们被视为 unsigned char 类型并提升为 int(没有符号扩展)。 |
bool |
bool 类型是可以具有 true 或 false 这两个值之一的整数类型。 其大小未指定。 |
|
short |
short int 类型(或 short)是大于或等于 char 类型的大小但小于或等于 int 类型的大小的整型类型。short 类型的对象可声明为 signed short 或 unsigned short。Signed short 是 short 的同义词。 |
|
int |
int 类型是大于或等于 short int 类型的大小但小于或等于 long 类型的大小的整数类型。int 类型的对象可声明为 signed int 或 unsigned int。Signed int 是 int 的同义词。 |
|
__int8, __int16, __int32, __int64, __int128 |
固定大小的整数 __int``n,其中 n 是整数变量的大小(以比特为单位)。 (__int8、__int16、__int32、__int64 和 __int128 是 Microsoft 专用的关键字。 并非所有类型在所有体系结构上都可用。) |
|
long |
long 类型(或 long int)是大于或等于 int 类型的大小的整数类型。long 类型的对象可声明为 signed long 或 unsigned long。Signed long 是 long 的同义词。 |
|
long long |
大于无符号 long。long long 类型的对象可声明为 signed long long 或 unsigned long long。Signed long long 是 long long 的同义词。 |
|
wchar_t, __wchar_t |
wchar_t 类型的变量指定宽字符或多字节字符类型。 默认情况下,wchar_t 是本机类型,但可以使用 /Zc: wchar_t- 使 wchar_t 成为 unsigned short 的 typedef。__wchar_t 类型是本机 wchar_t 类型的 Microsoft 专用同义词。在字符或字符串文本前使用 L 前缀可指定宽字符类型。 |
|
| 浮点 | float |
float 类型是最小的浮点类型。 |
double |
double 类型是大于或等于 float 类型的大小但小于或等于 long double 类型的大小的浮点类型。Microsoft 专用: long double 和 double 的表示形式完全相同。 但是,long double 和 double 是不同的类型。 |
|
long double |
long double 类型是大于或等于 double 类型的浮点类型。 |
Microsoft 专用
下表列出了 Microsoft C++ 中的基础类型所需的存储量。
| 类型 | 大小 |
|---|---|
bool, char, unsigned char, signed char, __int8 |
1 个字节 |
__int16, short, unsigned short, wchar_t, __wchar_t |
2 个字节 |
float, __int32, int, unsigned int, long, unsigned long |
4 个字节 |
double, __int64, long double, long long |
8 个字节 |
__int128 |
16 个字节 |
下表中指定的范围均包含起始值和结束值。
| 类型名称 | 字节 | 其他名称 | 值的范围 |
|---|---|---|---|
| int | 4 | signed | –2,147,483,648 到 2,147,483,647 |
| unsigned int | 4 | unsigned | 0 到 4,294,967,295 |
| __int8 | 1 | char | –128 到 127 |
| unsigned __int8 | 1 | unsigned char | 0 到 255 |
| __int16 | 2 | short、short int、signed short int | –32,768 到 32,767 |
| unsigned __int16 | 2 | unsigned short、unsigned short int | 0 到 65,535 |
| __int32 | 4 | signed、signed int、int | –2,147,483,648 到 2,147,483,647 |
| unsigned __int32 | 4 | unsigned、unsigned int | 0 到 4,294,967,295 |
| __int64 | 8 | long long、signed long long | –9,223,372,036,854,775,808 到 9,223,372,036,854,775,807 |
| unsigned __int64 | 8 | unsigned long long | 0 到 18,446,744,073,709,551,615 |
| bool | 1 | 无 | false 或 true |
| char | 1 | 无 | -128 到 127(默认) 0 到 255(当使用 /J 编译时) |
| signed char | 1 | 无 | –128 到 127 |
| unsigned char | 1 | 无 | 0 到 255 |
| short | 2 | short int、signed short int | –32,768 到 32,767 |
| unsigned short | 2 | unsigned short int | 0 到 65,535 |
| long | 4 | long int、signed long int | –2,147,483,648 到 2,147,483,647 |
| unsigned long | 4 | unsigned long int | 0 到 4,294,967,295 |
| long long | 8 | 无(与 __int64 等效) | –9,223,372,036,854,775,808 到 9,223,372,036,854,775,807 |
| unsigned long long | 8 | 无(与无符号的 __int64 等效) | 0 到 18,446,744,073,709,551,615 |
| enum | varies | 无 | 请参阅本文后面的备注 |
| float | 4 | 无 | 3.4E +/- 38(7 位数) |
| double | 8 | 无 | 1.7E +/- 308(15 位数) |
| long double | 与 double 相同 | 无 | 与 double 相同 |
| wchar_t | 2 | __wchar_t | 0 到 65,535 |
2.当我们赋给无符号类型一个超出它范围的值时,结果是初始值对无符号类型表示数值总数取模后的余数。当我们赋给带符号类型一个超出它表示范围的值时,结果是未定义的。
3.当一个算术表达式中既有无符号数又有int值时,那个int值就会转换成无符号数。
4.以0开头的整数代表八进制,以0x 0X开头的代表十六进制数。
5.指定字面值的类型。

标签:false logs 指定 data 进制 声明 笔记 href sum
原文地址:http://www.cnblogs.com/zoneofmine/p/7224388.html