📅  最后修改于: 2023-12-03 15:39:56.693000             🧑  作者: Mango
C++ 是一种计算机编程语言,具有高效性、可移植性和通用性。在编写数字计算程序时,C++ 提供了多种可用的参数选项,以实现不同的计算目标和结果。
整数是 C++ 中的最基本数字类型,用于表示没有小数部分的数值。C++ 提供了多种整数类型,如下所示:
| 类型 | 存储范围 | 备注 | | --- | --- | --- | | int | -2^31 ~ 2^31-1 | 常用类型 | | unsigned int | 0 ~ 2^32-1 | 无符号整数,不能表示负数 | | short | -2^15 ~ 2^15-1 | 短整数类型 | | unsigned short | 0 ~ 2^16-1 | 无符号短整数类型 | | long | -2^63 ~ 2^63-1 | 长整数类型 | | unsigned long | 0 ~ 2^64-1 | 无符号长整数类型 |
整数类型可以用于表示数量、计数、索引等,也可用于数字运算和转换。
int x = 123;
unsigned int y = 456;
short z = -789;
unsigned short w = 987;
long a = 123456789123456789;
unsigned long b = 987654321987654321;
int sum = x + z; // -666
unsigned int diff = y - w; // 331
long prod = a * b; // 121932631137021795981945725543055
浮点数是 C++ 中用于表示有小数部分的数值的数字类型。C++ 提供了两种浮点类型:单精度浮点数和双精度浮点数。
单精度浮点数用于表示小数部分精度较低的数值,通常使用 float
数据类型。其有效位数为 6~7 位左右,存储范围约为 -10^38 ~ 10^38。
双精度浮点数用于表示小数部分精度较高的数值,通常使用 double
数据类型。其有效位数为 15~16 位左右,存储范围约为 -10^308 ~ 10^308。
浮点类型可以用于表示数值计算、物理量等,但由于浮点数的精度问题,对于要求高精度计算结果的场合,建议使用第三方的高精度计算库。
float x = 1.23e4;
double y = 4.56e-7;
float sum = x + y; // 12300.000000476837158
double prod = x * y; // 0.000005620799
C++ 11 以后,也可以使用固定精度类型 std::fixed_point
来表示高精度计算结果。
固定精度类型在实现时采用固定小数点表示法,通过内部整数存储,实现高精度计算。相比于使用浮点类型进行高精度计算,固定精度类型更加精确和可控。
#include <iostream>
#include <iomanip>
#include <cmath>
#include <numeric>
#include <boost/multiprecision/cpp_dec_float.hpp>
using namespace boost::multiprecision;
// 固定精度类型
using fixed_point = cpp_dec_float_100;
int main()
{
fixed_point x = 3.141592653589793238462643383279502884197169399375;
fixed_point y = std::sqrt(2);
std::cout << std::fixed << std::setprecision(100);
std::cout << "x = " << x << std::endl;
std::cout << "y = " << y << std::endl;
std::cout << "sum = " << x + y << std::endl;
std::cout << "prod = " << x * y << std::endl;
return 0;
}
C++ 也提供了复数类型 std::complex
,用于表示实部和虚部都是浮点数的复数值。
复数可以用于表示电学或光学中的相位、振幅等量,或用于信号处理和图像处理中的频谱分析等。
#include <iostream>
#include <complex>
int main()
{
std::complex<double> z(3.0, 4.0);
std::cout << "z = " << z << std::endl;
std::cout << "|z| = " << std::abs(z) << std::endl;
std::cout << "arg(z) = " << std::arg(z) << std::endl;
std::cout << "conj(z) = " << std::conj(z) << std::endl;
std::cout << "z^2 = " << std::pow(z, 2) << std::endl;
return 0;
}
C++ 提供了多种参数选项,用于表示不同类型的数值计算结果。选取合适的数值类型和参数,有助于实现数值计算过程的正确性、高效性和可控性,提高程序的性能和稳定性。