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 类型在科学计算、工程和其他需要高精度数值的领域中广泛使用。

相关推荐
froginwe1118 小时前
C 语言输入与输出详解
开发语言
_童年的回忆_18 小时前
【PHP】关于守护进程报错:SQLSTATE[HY000]: General error: 2006 MySQL server has gone away
开发语言·oracle·php
少林码僧18 小时前
2.30 传统行业预测神器:为什么GBDT系列算法在企业中最受欢迎
开发语言·人工智能·算法·机器学习·ai·数据分析
爱宁~18 小时前
UnityShader学习笔记[二百九十九]UGUI中的Mask遮罩半透明Shader
笔记·学习
CoderCodingNo18 小时前
【GESP】C++六级考试大纲知识点梳理, (7) 栈与队列
开发语言·c++
edisao19 小时前
六、 读者高频疑问解答 & 架构价值延伸
大数据·开发语言·人工智能·科技·架构·php
超级大福宝19 小时前
【力扣200. 岛屿数量】的一种错误解法(BFS)
数据结构·c++·算法·leetcode·广度优先
范纹杉想快点毕业19 小时前
C语言实现埃拉托斯特尼筛法
c语言·开发语言
catchadmin19 小时前
Laravel12 + Vue3 的免费可商用 PHP 管理后台 CatchAdmin V5.1.0 发布 新增 AI AGENTS 配置
开发语言·php
一颗青果19 小时前
auto | 尾置返回类型 | decltype | using | typedef
java·开发语言·算法