c++ 学习之 数据类型的取值范围

前言

学习一门语言入门就是学习数据类型,我们来深入了解一下c++的数据类型的取值范围

正文

char

  • 通常情况下,如果 char 被定义为有符号类型,其取值范围通常是-128 到 127(或者在某些平台上是-127 到 127,取决于编译器)。这是因为 char 类型通常占用一个字节(8位),其中一位用于表示符号位。

  • 如果 char 被定义为无符号类型,其取值范围通常是 0 到 255,因为无符号 char 不包含负数。

short

  1. 带符号的 short (signed short):

通常占用 2 个字节(16 位)。

取值范围通常是从 -32768 到 32767。

其中一位用于表示符号位,所以它可以表示负数和非负数。

无符号的 short (unsigned short):

  1. 通常也占用 2 个字节(16 位)。
    取值范围通常是从 0 到 65535。
    无符号 short 只表示非负数。
    这两种类型的 short 在存储能力上是相同的,都占用 2 个字节,但由于符号性质不同,它们的取值范围也不同。

int

  • 带符号的 int (signed int):

通常占用 4 个字节(32 位)。

取值范围通常是从 -2147483648 到 2147483647。

其中一位用于表示符号位,所以它可以表示负数和非负数。

  • 无符号的 int (unsigned int):

通常占用 4 个字节(32 位)。

取值范围通常是从 0 到 4294967295。

无符号 int 只表示非负数。

这两种类型的 int 在存储能力上是相同的,都占用 4 个字节,但由于符号性质不同,它们的取值范围也不同。

long

  • 带符号的 long (signed long):

带符号的 long 类型的取值范围通常是依赖于编译器和平台的,但它通常至少与 int 类型一样大,通常是 4 个字节或 8 个字节。

取值范围通常是从 -9223372036854775808 到 9223372036854775807,如果是 8 字节大小。

  • 无符号的 long (unsigned long):

无符号的 long 类型的取值范围也依赖于编译器和平台,但它通常至少与 unsigned int 类型一样大,通常是 4 个字节或 8 个字节。

取值范围通常是从 0 到 18446744073709551615,如果是 8 字节大小。

float

在 C++ 中,float 类型的取值范围通常遵循 IEEE 754 浮点数标准,该标准定义了浮点数的表示和操作规则。float 类型通常占用 4 个字节(32 位),其取值范围如下:

最小正正规化数(最小的正非零数):约为 1.4013e-45

最大正规化数:约为 3.4028e+38

float 类型可以表示小数和整数值,但要注意它的精度有限,因为它只有 32 位,因此在表示非常大或非常小的数时,可能会丧失精度。浮点数也可能具有舍入误差,特别是在进行浮点数运算时。

double

在 C++ 中,double 类型的取值范围通常也遵循 IEEE 754 浮点数标准,该标准定义了浮点数的表示和操作规则。double 类型通常占用 8 个字节(64 位),其取值范围如下:

最小正正规化数(最小的正非零数):约为 4.9407e-324

最大正规化数:约为 1.7977e+308

与 float 不同,double 类型具有更高的精度,因此可以表示更大范围和更高精度的数值。这使得 double 类型在科学计算、工程和其他需要高精度数值的领域中广泛使用。

相关推荐
我在人间贩卖青春几秒前
C++之new和delete
c++·delete·new
●VON6 分钟前
CANN推理引擎:从云端到边缘的极致加速与部署实战
学习·react native
Z9fish6 分钟前
sse哈工大C语言编程练习20
c语言·开发语言·算法
Trouvaille ~10 分钟前
TCP Socket编程实战(三):线程池优化与TCP编程最佳实践
linux·运维·服务器·网络·c++·网络协议·tcp/ip
笔画人生10 分钟前
深度解析 CANN 项目:以 `ops-transformer` 为例探索高性能 AI 算子库
学习·开源
June`19 分钟前
高并发网络框架:Reactor模式深度解析
linux·服务器·c++
小镇敲码人30 分钟前
剖析CANN框架中Samples仓库:从示例到实战的AI开发指南
c++·人工智能·python·华为·acl·cann
萧鼎31 分钟前
Python 包管理的“超音速”革命:全面上手 uv 工具链
开发语言·python·uv
AI视觉网奇43 分钟前
3d数字人 ue blender 绑定衣服对齐 2026
学习·ue5
Nan_Shu_6141 小时前
学习: Blender 基础篇
学习·blender