每日学点c++:处理数据篇(2)

接着上一篇:每日学点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字符集。
ASCII字符集
程序清单:

# 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

程序说明:

  1. ‘M’ : 表示字符M的数值编码;
  2. cout.put():是一个重要的C++OOP概念——成员函数。类定义了如何表示和控制数据。成员函数归类所有,描述了操纵类数据的方法。例如类ostream有一个put()成员函数,用来输出字符。只能通过类的特定对象(例如这里的cout对象)来使用成员函数。要使用对象(如cout)使用成员函数,必须使用句点将对象名和函数名称(put())连接起来。据点被称为成员运算符。
  3. 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 书写浮点数

  1. 使用常用的标准小数点表示法:
12.34  // floating-point
939001.32 // floating-point
0.00023 // floating-point
8.0 // still floating-point
  1. E表示法:例如:3.15E6,这指的是3.45与1000000相乘的结果;E6指的是10的6次方。
  2. 注意: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
请按任意键继续. . .
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值