标签:形式 应用 float 负数 十六进制 需要 sig 参与 end
C++的基本内置类型包含空类型和算术类型。
算术类型包含:字符类型、整型数、浮点值、布尔值。
算术类型分为两大类:整型,包含字符和布尔类型在内;浮点型。
char
的大小和一个机器字节一样。wchar_t
确保可以存放机器最大扩展字符集中的一个字符。char16_t
、char32_t
为 Unicode
字符集服务。int
至少和 short
一样大。long
至少和 int
一样大。long long
至少和 long
一样大,long long
是C++11新定义的。float
以1个字表示,double
以两个字表示,long double
以3个或者4个字表示。除了布尔类型和扩展的字符类型之外,其它整型可以划分为带符号和无符号的。
字符型分为三种:char
、signed char
、unsigned char
。但是表现形式只有两种:带符号的,无符号的。char
类型具体是上述两种类型中的哪一种由编译器决定。
short
常常显得更小,long
一般和 int
拥有一样的尺寸,如果数值超过了 int
,选用long long
。char
类型,一定要明确指出是 signed char
还是unsigned char
。double
,这是因为 float
通常精度不够并且双精度浮点和单精度浮点在计算代价上相差无几,甚至在一些机器上双精度要比单精度更快。long double
提供的精度通常是不必要的,而且它带来的运行时消耗也比较大。对象的类型定义了对象能包含的数据和能参与的运算。类型转换是大多数类型所支持的运算。
当程序在某处使用一种类型,而实际上应该使用另一种类型的时候,程序会自动进行类型转换。
类型所能表示的范围决定了转换过程:
false
,否则结果为 true
。false
则结果为0,初始值为 true
则结果是1。-1
赋值给 unsigned char
类型,其结果将是255。unsigned u = -10;
cout<<u<<endl; //相当于u + UINT_MAX + 1
unsigned u = UINT_MAX;
int i = u;
cout << i << endl; //相当于 u - (UINT_MAX+1)
unsigned u = 10;
int i = -42;
cout << i + u << endl; //UINT_MAX + 1 - 42 + 10
注意:
无符号数错误的使用在循环语句中,导致死循环:
for(unsigned u=10;u>=0;u--)
{
....
}
int
、long
、long long
中尺寸最小的那个,前提是这种类型包含当前值。int
、unsigned int
、long
、unsigned long
、long long
、unsigned long long
。double
类型。char
型字面值,双引号括起来的是字符串字面值。cout << "I am so happy,"
"today" << endl;
两类字符程序员不能直接使用:
对于以上两种强开,需要用到转义序列,转义序列都是以反斜线开始:
也可以使用泛化的转义序列,其形式是 \x
后紧跟一个或者多个十六进制数,或者 \
后紧跟一个、两个、三个八进制数字,其中数字部分表示的字符对应的数值,
注意:
\
后面跟着的八进制数字超过3个,只有前3个数字与 \
构成转义序列。true
和 false
是布尔字面值。nullptr
是指针字面值。标签:形式 应用 float 负数 十六进制 需要 sig 参与 end
原文地址:https://www.cnblogs.com/xiaojianliu/p/12498673.html