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

相关推荐
未来之窗软件服务10 分钟前
幽冥大陆(三十四)VUE +node智慧农业电子秤读取——东方仙盟炼气期
开发语言·vue·电子秤·东方仙盟·东方仙盟sdk
落子摘星34 分钟前
suricata学习杂记(一)
学习·modbus·suricata·pdu
CoderYanger1 小时前
优选算法-字符串:63.二进制求和
java·开发语言·算法·leetcode·职场和发展·1024程序员节
3***31211 小时前
java进阶1——JVM
java·开发语言·jvm
charlie1145141911 小时前
深入理解C/C++的编译链接技术6——A2:动态库设计基础之ABI设计接口
c语言·开发语言·c++·学习·动态库·函数
Cx330❀1 小时前
C++ STL set 完全指南:从基础用法到实战技巧
开发语言·数据结构·c++·算法·leetcode·面试
white-persist1 小时前
【攻防世界】reverse | Reversing-x64Elf-100 详细题解 WP
c语言·开发语言·网络·python·学习·安全·php
FeiHuo565151 小时前
微信个人号开发中如何高效实现API二次开发
java·开发语言·python·微信
zmzb01031 小时前
C++课后习题训练记录Day33
开发语言·c++
csbysj20201 小时前
Bootstrap 折叠
开发语言