数据掌控大师:C++ 数据处理艺术与技巧

第一章 数据处理

  • 1.1 基本数据类型
    • 1.1.1 整型数据
    • 1.1.2 实型数据
    • 1.1.3 字符型数据
    • 1.1.4 bool型数据
  • 1.2 数据存储
    • 1.2.1 标识符
    • 1.2.2 常量
    • 1.2.3 变量
  • 1.3 数据处理
    • 1.3.1 算术运算符
    • 1.3.2 赋值运算符
    • 1.3.3 关系运算符
    • 1.3.4 逻辑运算符
    • 1.3.5 条件运算符
    • 1.3.6 sizeof 运算符
    • 1.3.7 位运算符
  • 1.4 综合实例

1.1 基本数据类型

1.1.1 整型数据

整型数据是用来表示整数的数据类型,C++提供了不同大小的整型数据类型,包括:

  • int: 表示存储范围较大的整数,通常为4个字节。
  • short: 表示存储范围较小的整数,通常为2个字节。
  • long: 表示存储范围较大的整数,通常为4个字节或8个字节。
  • long long: 表示存储范围更大的整数,通常为8个字节。

以下是一些整型数据的示例代码:

int a = 10;
short b = 5;
long c = 1000;
long long d = 1234567890;

1.1.2 实型数据

实型数据是用来表示浮点数的数据类型,C++提供了不同大小的实型数据类型,包括:

  • float: 单精度浮点数,通常为4个字节。
  • double: 双精度浮点数,通常为8个字节。
  • long double: 扩展精度浮点数,通常为10个字节或16个字节。

以下是一些实型数据的示例代码:

float x = 3.14;
double y = 2.71828;
long double z = 1.6180339887;

1.1.3 字符型数据

字符型数据用来表示单个字符,C++使用char类型来表示字符,通常为1个字节。

以下是一个字符型数据的示例代码:

char ch = 'A';

1.1.4 bool型数据

bool型数据用来表示真或假的值,C++使用bool类型来表示布尔值,只有两个取值:true和false。

以下是一个bool型数据的示例代码:

bool flag = true;

【例1-1】检测基本数据类型所占的字节数

#include 
using namespace std;

int main() 
{
    cout << "int: " << sizeof(int) << " bytes" << endl;
    cout << "short: " << sizeof(short) << " bytes" << endl;
    cout << "long: " << sizeof(long) << " bytes" << endl;
    cout << "long long: " << sizeof(long long) << " bytes" << endl;
    cout << "float: " << sizeof(float) << " bytes" << endl;
    cout << "double: " << sizeof(double) << " bytes" << endl;
    cout << "long double: " << sizeof(long double) << " bytes" << endl;
    cout << "char: " << sizeof(char) << " bytes" << endl;
    cout << "bool: " << sizeof(bool) << " bytes" << endl;
    return 0;
}

程序运行结果如下

int:4 bytes
short:2 bytes
long:4 bytes
long long: 8 bytes
float:4 bytes
double: 8 bytes
long double: 8 bytes
char:1 bytes
bool: 1 bytes

1.2 数据存储

1.2.1 标识符

标识符是用来命名变量、函数、类等的名称,C++的标识符由字母、数字和下划线组成,且以字母或下划线开头。

以下是一个标识符的示例代码:

int age = 18;

1.2.2 常量

常量是固定不变的值,可以使用常量来存储不需要修改的数据。

【例1-2】整型常量的表示

int number = 10;

【例1-3】带后缀的整型常量

int decimal = 10;
int octal = 012;  // 八进制常量,以0开头
int hex = 0x1A;  // 十六进制常量,以0x开头

【例1-4】实型常量的表示

float pi = 3.14;

【例1-5】带后缀的实型常量

float radius = 2.5f;  // 单精度浮点数常量,以f或F结尾
double height = 1.8;  // 双精度浮点数常量,默认为双精度

【例1-6】用转义字符输出字符

char ch = '\n';  // 换行符
cout << ch << endl;

【例1-7】输出字符串

string message = "Hello, world!";
cout << message << endl;

【例1-8】输出bool型常量

bool flag = true;
cout << flag << endl;

【例1-9】使用符号常量

const int MAX_NUM = 100;
int numbers[MAX_NUM];

1.2.3 变量

变量是用来存储数据的容器,可以通过给变量赋值来存储不同的数据。

【例1-10】变量的初始化与使用

int age = 18;  // 初始化变量
cout << "My age is " << age << endl;  // 使用变量

1.3 数据处理

1.3.1 算术运算符

【例 1-11】基本算术运算符

#include 
using namespace std;
int main() 
{
	int a = 10;
	int b = 5;
	int sum = a + b;
	int difference = a - b;
	int product = a * b;
	int quotient = a / b;
	int remainder = a % b;
	cout << "和: " << sum << endl;
	cout << "差为: " << difference << endl;
	cout << "乘积为: " << product << endl;
	cout << "商值为: " << quotient << endl;
	cout << "余数为: " << remainder << endl;
	return 0;
}

程序运行结果如下

和:15
差为:5
乘积为:50
商值为:2
余数为:0

【例 1-12】字符参与算术运算

字符类型可以参与算术运算,它们的ASCII码值在计算过程中被使用。下面是一个示例:

#include 
using namespace std;
int main() 
{
	char a = 'A';
	int b = 2;
	char c = a + b;
	cout << "c: " << c << endl;
	return 0;
}

程序运行结果如下

c:C

【例 1-13】自增和自减运算符的使用
自增运算符(++)用于增加变量的值,自减运算符(–)用于减少变量的值。下面是一个示例:

#include 
using namespace std;
int main() 
{
	int a = 5;
	int b = ++a;
	int c = --a;
	cout << "b: " << b << endl;
	cout << "c: " << c << endl;
	return 0;
}

程序运行结果如下

b: 5
c: 6

【例 1-14】数据类型自动转换

C++中有自动类型转换的规则,当不同类型的表达式混合使用时,编译器会自动进行类型转换。下面是一个示例:

#include 
using namespace std;
int main() 
{
	int a = 5;
	double b = 2.5;
	int sum = a + b;
	cout << "和为: " << sum << endl;
	return 0;
}

程序运行结果如下

和为: 7

【例 1-15】求三角形的面积

下面是一个求解三角形面积的示例:

#include 
using namespace std;
int main() 
{
	double base, height;          //定义三角形底和高的数据类型
	cout << "输入三角形的底: ";
	cin >> base;
	cout << "输入三角形的高: ";
	cin >> height;
	double area = 0.5 * base * height;   //三角形的面积计算公式
	cout << "三角形的面积为: " << area << endl;
	return 0;
}

程序运行结果如下

输入三角形的底:6
输入三角形的高:6
三角形的面积为:18

1.3.2 赋值运算符

除了“=”之外,C++还提供了10个复合赋值运算符+=、-=、*=、/=、%=、<<=、>>=、&=、|=和^=。复合赋值运算符是由赋值运算符之前再加一个双目运算符构成的,其中前5个是算术运算
符与赋值运算符复合而成,后5个是位运算符与赋值运算符复合而成。有关位运算的内容在后面
章节介绍。下面举例说明复合赋值运算符的含义。

a+=10  //手价于a=a+10
a-=10*b+20  //手价于a=a-(10*6+20)
ag=10*b+20  //等价于a=a% (10*b+20)

其他复合赋值运算符的含义与上面的类似,不再一一赘述。
【例 1-16】复合赋值运算符

#include 
using namespace std;
int main() 
{
	int a, b, c, d;
	a = 10;
	a += 20;        //a=a+20;30
	cout << a << endl;
	a -= 5;         //a=a-5;25
	cout << a << endl;
	a *= 5 + 5;     //a=a*(5+5);250
	cout << a << endl;
	a /= 5 - 3;     //a=a/(5-3);125
	cout << a << endl;
	a %= 5 + 3;     //a=a%(5+3);5
	cout << a << endl;
	return 0;
}

程序运行结果如下

30
25
250
125
5

1.3.3 关系运算符

【例 1-17】求关系表达式的值

关系运算符用于比较两个值,并返回一个布尔值(true或false)。下面是一个示例:

#include 
using namespace std;
int main() 
{
	int a = 5;
	int b = 7;
	bool result = a > b;
	cout << "result: " << result << endl;
	return 0;
}

程序运行结果如下

result:0

1.3.4 逻辑运算符

【例 1-18】逻辑运算符应用实例

逻辑运算符用于组合多个关系表达式,并返回一个布尔值。下面是一个示例:

#include 
using namespace std;
int main() 
{
	int a = 5;
	int b = 7;
	bool result = (a > 3) && (b < 10);
	cout << "result: " << result << endl;
	return 0;
}

程序运行结果如下

result:1

1.3.5 条件运算符

【例 1-19】求两个数中较大的值和较小的值

条件运算符(? :)是一个三元运算符,可以根据条件的真假选择不同的操作。下面是一个示例:

#include 
using namespace std;
int main() 
{
	int a = 5;
	int b = 7;
	int max = (a > b) ? a : b;
	int min = (a < b) ? a : b;
	cout << "max: " << max << endl;
	cout << "min: " << min << endl;
	return 0;
}

程序运行结果如下

max:7
min:5

1.3.6 sizeof 运算符

sizeof运算符用于获取变量或数据类型的大小。下面是一个示例:

#include 
using namespace std;
int main() 
{
	int a;
	cout << "Size of int: " << sizeof(a) << " bytes" << endl;
	return 0;
}

程序运行结果如下

Size of int: 4 bytes

1.3.7 位运算符

位运算符用于对二进制数进行位操作。下面是一些常用的位运算符:

  • 与运算(&)
  • 或运算(|)
  • 异或运算(^)
  • 左移运算(<<)
  • 右移运算(>>)

这里提供了一些位运算的实例代码:

#include 
using namespace std;
int main() 
{
	int a = 5; // 二进制表示: 0101
	int b = 3; // 二进制表示: 0011
	cout << "a & b: " << (a & b) << endl; // 与运算: 0001
	cout << "a | b: " << (a | b) << endl; // 或运算: 0111
	cout << "a ^ b: " << (a ^ b) << endl; // 异或运算: 0110
	cout << "a << 1: " << (a << 1) << endl; // 左移运算: 1010
	cout << "b >> 1: " << (b >> 1) << endl; // 右移运算: 0001
	return 0;
}

程序运行结果如下

a & b: 1
a | b: 7
a ^ b: 6
a << 1: 10
b >> 1: 1

1.4 综合实例

【例 1-20】输出一个三位数的个位数、十位数和百位数

下面是一个输出三位数个位数、十位数和百位数的示例:

#include 
using namespace std;
int main() 
{
	int num;
	cout << "输入一个三位数: ";
	cin >> num;
	int ones = num % 10;
	int tens = (num / 10) % 10;
	int hundreds = num / 100;
	cout << "个位数为: " << ones << endl;
	cout << "十位数为: " << tens << endl;
	cout << "百位数为: " << hundreds << endl;
	return 0;
}

程序运行结果如下

输入三位数:185
个位数为:1
十位数为:8
个位数为:5

你可能感兴趣的:(c++,学习,笔记)