数据类型int、long、longlong、固定长度类型的选择

在 C/C++ 中,intlong 、long long是三种常用的整数类型它们的大小和范围可能因平台和编译器而异。


int

              大小:通常为 4 字节(32 位)。
              范围:-2^31~2^31-1(10^9数量级)
              用途

                           1.适合大多数通用场景,例如计数器、数组索引、简单的数学运算等。

                           2.是 C/C++ 中最常用的整数类型,性能通常较好。

              选择建议:如果数值范围在 ±21 亿以内,优先使用 int

long

              大小:在 32 位系统上,通常为 4 字节(32 位),范围: int 相同。
                         在 64 位系统上,通常为 8 字节(64 位),范围: -2^63~2^63-1(10^18数量级)
              用途:

                       1.适合需要更大范围的整数,但仍然需要考虑平台兼容性。

                       2.在 32 位系统上,long 和 int 可能没有区别。

              选择建议:

                       如果需要更大的范围(例如超过 ±21 亿),并且代码主要在 64 位系统上运行,可以使用 long。

                       如果需要跨平台兼容性,建议使用固定长度的类型(如 int64_t)。


long long

             大小:固定为 8 字节(64 位)。
             范围:-2^63~2^63-1(10^18数量级)
             用途

                      1.适合需要非常大范围的整数,例如时间戳、大数计算等。

                      2.是 C99 标准引入的,具有固定的 64 位长度,跨平台兼容性更好。

             选择建议:

                      如果数值范围超过 int 或 long 的范围,优先使用 long long。

                      如果需要明确的 64 位整数,优先使用 long long 而不是 long。


固定长度类型

              为了确保代码的可移植性和一致性,C/C++ 提供了固定长度的整数类型

                                          (定义在 <stdint.h> 或 <cstdint> 中)  

                     int32_t:固定 32 位整数,范围与 int 相同。

                     int64_t:固定 64 位整数,范围与 long long 相同。

                     uint32_t 和 uint64_t:无符号版本。

               选择建议:如果需要明确的位数和跨平台兼容性,优先使用固定长度类型(如 int32_t 或 int64_t)。

总结

数据类型大小(字节)范围使用场景
int-2^31~2^31-1(10^9数量级)通用场景,性能优先
long4或8

32位机:同int

64位机:同long long

需要更大范围,但平台兼容性不确定
long long8-2^63~2^63-1(10^18数量级)需要非常大范围,跨平台兼容性好
int32_t同int 需要明确32位整数,跨平台兼容
int64_t8同long long需要明确64位整数,跨平台兼容

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值