接着上一篇:每日学点c++:处理数据篇(1)
1.3 整型字面值
整型字面值(常量)是显式地书写的常量,如508或612。C++能够以三种不同的计数方式来书写整数:十进制、八进制和十六进制。
十进制:第一位为1~9;
八进制:第一位为0,第二位为1~7;
十六进制:前两位为0x或0X,字符a~ f和A~F表示了十六进制位,对应于10 ~ 15。
代码例程:
# include <iostream>
int main()
{
using namespace std;
int chest = 42; // 十进制整数文字
int waist = 0x42; // 十六进制整数文字
int inseam = 042; // 八进制整数文字
cout << "Monsieur cuts a striking figure !" << endl;
cout << "chest = " << chest << " (42 in decimal)\n";
cout << "waist = " << waist << " (0x42 in hex)\n";
cout << "inseam = " << inseam << " (042 in octal)\n";
return 0;
}
输出结果:
Monsieur cuts a striking figure !
chest = 42 (42 in decimal)
waist = 66 (0x42 in hex)
inseam = 34 (042 in octal)
请按任意键继续. . .
注:不管是几进制,都将以相同的方式存储到计算机中——被存储为二进制数(以2为基数)。
头文件iostream提供了控制符endl,用于指示cout重起一行。同样,它还提供了控制符dec、hex和oct,分别用于指示cout以十进制、十六进制和八进制格式显示整数。
程序清单:
# include <iostream>
using namespace std;
int main()
{
using namespace std;
int chest = 42;
int waist = 42;
int inseam = 42;
cout << "Monsieur cuts a striking figure !" << endl;
cout << "chest = " << chest << " (decimal for 42)\n" << endl;
cout << hex; // 用于更改基数的操纵器,基数改为16
cout << "waist = " << waist << " (hexadecimal for 42)\n" << endl;
cout << oct; // 用于更改基数的操纵器,基数改为8
cout << "inseam = " << inseam << " (octal for 42)\n" << endl;
return 0;
}
输出结果:
Monsieur cuts a striking figure !
chest = 42 (decimal for 42)
waist = 2a (hexadecimal for 42)
inseam = 52 (octal for 42)
请按任意键继续. . .
1.4 char类型:字符和小整数
char类型:专为存储字符(如字母和数字)而设计的。编程语言通过使用字母的数值编码存储字符;
char特点:足够长,能够表示计算机系统中的所有基本符号——所有的字母、数字、标点符号等;
常用符号集:ASCII字符集、Unicode字符集。
程序清单:
# include <iostream>
int main()
{
using namespace std;
char lm; // 声明一个字符变量
cout << "Enter a character :" << endl;
cin >> lm;
cout << "Hola! ";
cout << "Thank you for the " << lm << " character." << endl;
return 0;
}
结果输出:
Enter a character :
L
Hola! Thank you for the L character.
请按任意键继续. . .
如何显示字符字面值? 将字符用单引号括起,C++对字符用单引号,对字符串用双引号。
程序清单:
# include <iostream>
int main()
{
using namespace std;
char ch = 'L'; // 将L的ASCII码分配给ch
int i = ch; // 把同样的code存储到整型里面
cout << "The ASCII code for " << ch << " is " << i << endl;
cout << "Add one to the charater code: " << endl;
ch = ch + 1; // 改变ch的字符码
i = ch; // 保存新的字符码在i中
cout << "The ASCII code for " << ch << " is " << i << endl;
// 使用cout.put()
功能去显示一个字符
cout << "Displaying char ch using cout.put(sh): ";
cout.put(ch);
// 使用cout.put()
功能去显示一个字符常量
cout.put('!');
cout << endl << "Done" << endl;
return 0;
}
输出结果:
The ASCII code for L is 76
Add one to the charater code:
The ASCII code for M is 77
Displaying char ch using cout.put(sh): M!
Done
程序说明:
- ‘M’ : 表示字符M的数值编码;
- cout.put():是一个重要的C++OOP概念——成员函数。类定义了如何表示和控制数据。成员函数归类所有,描述了操纵类数据的方法。例如类ostream有一个put()成员函数,用来输出字符。只能通过类的特定对象(例如这里的cout对象)来使用成员函数。要使用对象(如cout)使用成员函数,必须使用句点将对象名和函数名称(put())连接起来。据点被称为成员运算符。
- cout.put()表示:通过类对象cout来使用函数put()。
转义序列:可以是基于字符的八进制和十六进制编码来使用转义序列。例如,CTR+Z的ASCII码为26,对应的八进制编码为032,十六进制编码为0xla。可以用下面的转义序列来表示该字符:\032 或 \x la。将这些常数用单引号括起,可以得到相应的字符常量。
程序清单:
#include <iostream>
int main()
{
using namespace std;
cout << "\aOperation \"HyperHype\" is now activated!\n";
cout << "Enter your agent code:_____\b\b\b\b\b";
long code;
cin >> code;
cout << "\aYou entered " << code << "...\n";
cout << "\aCode verified! Proceed with Plan Z3!\n";
return 0;
}
输出结果:
Operation "HyperHype" is now activated!
Enter your agent code:hhhh_
You entered 3555328...
Code verified! Proceed with Plan Z3!
请按任意键继续. . .
代码解释:
‘\a’:振铃字符来提请注意;
‘\n’:换行符使光标前进;
‘\b’:使光标后退一格;
1.5 const限定符
- 用法:使用关键字const来修改变量声明和初始化(同时进行)。关键字const叫做限定符,因为它限定了声明的含义。
- 例程:
const int Months = 12; //月的代表常量12
- 注意:如果在声明常量时没有提供值,则该常量的值将是不确定的,且无法修改。
1.6 浮点数
- 定义:浮点数能够表示带小数部分的数字
- 存储类型:带小数部分的数字,如2.5、3.14159和122442.32等。
- 存储方式:计算机将带小数部分的值分成两部分存储,一部分表示值,另一部分表示对数值的放大或缩小。
- 例子:对于34.1245和34124.5,它们除了小数点的位置不同外,其他都是相同的。可以把第一个数表示为0.341245(基准值)和100(缩放因子),而将第二个值表示为0.341245(基准值相同)和1000(缩放因子)。
- 浮点数名称由来:缩放就是移动小数点的位置,术语浮点由此得名。
1.6.1 书写浮点数
- 使用常用的标准小数点表示法:
12.34 // floating-point
939001.32 // floating-point
0.00023 // floating-point
8.0 // still floating-point
- E表示法:例如:3.15E6,这指的是3.45与1000000相乘的结果;E6指的是10的6次方。
- 注意:E或e均可,但数字中不能有空格;
1.6.2 浮点类型
- C++浮点类型:float、double和long double。
- 分类方式:表示的有效数位和允许的指数最小范围来描述的。
- 程序例程:
# include <iostream>
int main()
{
using namespace std;
cout.setf(ios_base::fixed, ios_base::floatfield); // 固定浮点
float tub = 10.0 / 3.0;
double mint = 10.0 / 3.0;
const float million = 1.0e6;
cout << "tub= " << tub;
cout << ", a million tubs = " << million * tub;
cout << ",\nand ten million tubs = ";
cout << 10 * million * tub << endl;
cout << "mint= " << mint << " and a million mints = ";
cout << million * mint << endl;
return 0;
}
结果显示:
tub= 3.333333, a million tubs = 3333333.250000,
and ten million tubs = 33333332.000000
mint= 3.333333 and a million mints = 3333333.333333
请按任意键继续. . .
1.7 C++算术运算符
基本运算类型:加法、减法、乘法、除法以及求模
- +运算符对操作数执行加法运算。
- -运算符从第一个数中减去第二个数。
- *运算符将操作数相乘。
- /运算符从第一个数中除去第二个数。
- %运算符求模。两个操作数必须是整形。
代码例程:
# include <iostream>
int main()
{
using namespace std;
float hats, heads;
cout.setf(ios_base::fixed, ios_base::floatfield);
cout << "Enter a number: ";
cin >> hats;
cout << "Enter another number: ";
cin >> heads;
cout << "hats = " << hats << " ; heads = " << heads << endl;
cout << "hats + heads = " << hats + heads << endl;
cout << "hats - heads = " << hats - heads << endl;
cout << "hats*heads = " << hats * heads << endl;
cout << "hats/heads = " << hats / heads << endl;
return 0;
}
代码显示:
Enter a number: 50
Enter another number: 20
hats = 50.000000 ; heads = 20.000000
hats + heads = 70.000000
hats - heads = 30.000000
hats*heads = 1000.000000
hats/heads = 2.500000
请按任意键继续. . .