• C++
  • C++ 基本数据类型的取值范围表格

  • @ 2025-6-18 19:43:53

以下是 C++ 基本数据类型的取值范围表格,包含 C++ 标准规定的最小值常见实现(32/64位系统)的具体范围。数据类型按 整数类型浮点类型布尔类型字符类型 分类展示:

C++ 基本数据类型取值范围表

数据类型 占用字节 标准最小值 常见实现范围 说明
整数类型
bool 1 false(0)、true(1) 布尔值,仅两个取值。
char 至少覆盖 -127127 通常为 -128127(有符号) 可能是有符号或无符号,取决于编译器。
signed char -127127 -128127 明确为有符号字符类型。
unsigned char 0255 明确为无符号字符类型。
short / short int 2 -32,76732,767 -32,76832,767 短整型。
unsigned short 065,535 无符号短整型。
int 4 -2,147,483,6472,147,483,647 -2,147,483,6482,147,483,647 最常用的整型。
unsigned int 04,294,967,295 无符号整型。
long / long int 至少 4 -2,147,483,6472,147,483,647 通常为 -9,223,372,036,854,775,8079,223,372,036,854,775,807 长整型(64位系统)。
unsigned long 04,294,967,295 通常为 018,446,744,073,709,551,615 无符号长整型(64位系统)。
long long 8 -9,223,372,036,854,775,8079,223,372,036,854,775,807 同上 C++11 起支持的超长整型。
unsigned long long 018,446,744,073,709,551,615 无符号超长整型。
浮点类型
float 4 最小正非零值:1.17549e-38 ±3.4e38(6-7位有效数字) 单精度浮点数。
double 8 最小正非零值:2.22507e-308 ±1.8e308(15-16位有效数字) 双精度浮点数,最常用。
long double 8/10/16 至少与 double 相同 通常为 ±1.18e4932(18-19位有效数字) 扩展精度浮点数,取决于编译器。
其他类型
wchar_t 2/4 至少覆盖所有基本多文种平面(BMP)的 Unicode 码点 Windows:16位(覆盖 U+0000 到 U+FFFF)
Linux/macOS:32位(覆盖整个 Unicode 范围)
宽字符类型,用于存储 Unicode 字符。
char16_t 2 065,535 用于存储 UTF-16 编码的 Unicode 字符 C++11 起支持。
char32_t 4 04,294,967,295 用于存储 UTF-32 编码的 Unicode 字符

说明

  1. 标准最小值:C++ 标准仅规定了各数据类型的最小取值范围,具体实现可能更大。
  2. 常见实现:表格中“常见实现范围”基于 64位系统(如 Windows、Linux、macOS) 的主流编译器(如 GCC、Clang、MSVC)。
  3. 有符号 vs 无符号:有符号类型使用最高位表示符号(正/负),无符号类型全部位用于表示数值。
  4. 获取范围的代码
    C++ 标准库提供了 std::numeric_limits 模板类来查询各类型的范围,例如:
    #include <iostream>
    #include <limits>
    using namespace std;
    
    int main() {
        cout << "int 最小值: " << numeric_limits<int>::min() << endl;
        cout << "int 最大值: " << numeric_limits<int>::max() << endl;
        cout << "float 精度: " << numeric_limits<float>::digits10 << endl;
        return 0;
    }
    

通过这张表格,你可以快速了解 C++ 各种数据类型的取值范围,在选择数据类型时避免溢出或内存浪费。

0 条评论

目前还没有评论...