目录

  1. 数字类型概述
  2. 整型(intshortlonglong long
  3. 浮点型(floatdoublelong double
  4. 数字的表示范围
  5. 数字常量
  6. 数字的输入与输出
  7. 数字与运算
  8. 参考资料

1. 数字类型概述

在 C++ 中,数字用于存储和处理数值数据。根据数据的特性,C++ 提供了多种数字类型,主要分为两类:整数类型浮点类型

  • 整数类型intshortlonglong long)用于表示没有小数部分的数值。
  • 浮点类型floatdoublelong double)用于表示包含小数部分的数值。

每种数字类型都有不同的精度和表示范围,开发者可以根据需要选择合适的类型。


2. 整型(intshortlonglong long

整型用于表示没有小数部分的数值,常用于计数、索引等需要整数的场合。

2.1 int(整数类型)

  • int 是 C++ 中最常用的整数类型,通常用于表示常见的整数值。
  • 它的大小通常是 4 字节(32 位),但可以根据平台有所不同。

2.2 short(短整型)

  • short 类型用于表示较小范围的整数。
  • 通常占用 2 字节(16 位)。

2.3 long(长整型)

  • long 类型用于表示更大的整数,通常占用 4 字节(32 位)或 8 字节(64 位)。

2.4 long long(更长整型)

  • long long 用于表示非常大的整数,通常占用 8 字节(64 位)。

示例:

#include <iostream>
using namespace std;

int main() {
    int a = 100;
    short b = 50;
    long c = 100000;
    long long d = 10000000000;

    cout << "int: " << a << endl;
    cout << "short: " << b << endl;
    cout << "long: " << c << endl;
    cout << "long long: " << d << endl;

    return 0;
}

输出:

int: 100
short: 50
long: 100000
long long: 10000000000


3. 浮点型(floatdoublelong double

浮点型用于表示包含小数部分的数字,适用于需要精度的计算,比如科学计算、金融等。

3.1 float(单精度浮点型)

  • float 通常用于存储单精度浮点数,表示范围较小,通常占用 4 字节(32 位)。

3.2 double(双精度浮点型)

  • double 是一种双精度浮点数类型,提供更大的精度和范围,通常占用 8 字节(64 位)。

3.3 long double(扩展精度浮点型)

  • long double 提供更高的精度,通常占用 12 字节或 16 字节,精度更高。

示例:

#include <iostream>
using namespace std;

int main() {
    float a = 3.14f;  // 单精度浮点数
    double b = 3.14159265358979;  // 双精度浮点数
    long double c = 3.14159265358979323846264338327950288419716939937510L;  // 扩展精度

    cout << "float: " << a << endl;
    cout << "double: " << b << endl;
    cout << "long double: " << c << endl;

    return 0;
}

输出:

float: 3.14
double: 3.14159
long double: 3.14159


4. 数字的表示范围

不同的数字类型在内存中占用的空间不同,因此它们的表示范围也各不相同。下面是常见类型的范围(基于 32 位系统):

  • int:-2,147,483,648 到 2,147,483,647
  • short:-32,768 到 32,767
  • long:-2,147,483,648 到 2,147,483,647
  • long long:-9,223,372,036,854,775,808 到 9,223,372,036,854,775,807
  • float:1.2E-38 到 3.4E+38(7 位有效数字)
  • double:2.3E-308 到 1.7E+308(15 位有效数字)
  • long double:3.4E-4932 到 1.1E+4932(18 位有效数字)

5. 数字常量

数字常量是程序中直接使用的常量值。C++ 支持多种类型的数字常量:

  • 整型常量:如 10, -25, 0x1A(十六进制)
  • 浮点常量:如 3.14, 2.71e5
  • 字符常量:如 'A', '1'(用单引号括起来)

示例:

#include <iostream>
using namespace std;

int main() {
    int a = 100;
    double pi = 3.14159;
    char letter = 'A';

    cout << "Integer: " << a << endl;
    cout << "Double: " << pi << endl;
    cout << "Character: " << letter << endl;

    return 0;
}

输出:

Integer: 100
Double: 3.14159
Character: A


6. 数字的输入与输出

C++ 提供了输入输出流库 iostream 来处理数字的输入与输出。使用 cin 读取输入,cout 输出结果。

示例:

#include <iostream>
using namespace std;

int main() {
    int x;
    cout << "Enter an integer: ";
    cin >> x;  // 用户输入
    cout << "You entered: " << x << endl;

    double y;
    cout << "Enter a floating-point number: ";
    cin >> y;  // 用户输入
    cout << "You entered: " << y << endl;

    return 0;
}

示例输入:

Enter an integer: 10
Enter a floating-point number: 3.14

输出:

You entered: 10
You entered: 3.14


7. 数字与运算

C++ 支持各种数学运算符来处理数字,包括加法、减法、乘法、除法、取余等。

示例:

#include <iostream>
using namespace std;

int main() {
    int a = 10, b = 3;
    cout << "Addition: " << a + b << endl;
    cout << "Subtraction: " << a - b << endl;
    cout << "Multiplication: " << a * b << endl;
    cout << "Division: " << a / b << endl;
    cout << "Modulus: " << a % b << endl;
    
    double c = 5.5, d = 2.3;
    cout << "Division (float): " << c / d << endl;

    return 0;
}

输出:

Addition: 13
Subtraction: 7
Multiplication: 30
Division: 3
Modulus: 1
Division (float): 2.3913


8. 参考资料


总结

C++ 提供了多种数字类型,包括整数类型和浮点类型,能够满足不同精度和范围的需求。掌握不同数字类型的使用,以及如何进行输入、输出和运算,可以帮助开发者在处理数值计算时更加高效和精确。