int,long和long long的区别

int,long和long long的区别

  • int

    (4个字节,32位)
    unsigned int 0~4294967295
    int -2147483648~2147483647

  • _int32

    (4个字节,32位)
    unsigned _int32 0~4294967295
    _int32 -2147483648 ~ 2147483647

  • long

    (4个字节,32位)
    unsigned long 0~4294967295
    long -2147483648~2147483647

  • long long

    (8个字节,64位)
    unsigned long long:0~1844674407370955161
    long long:-9223372036854775808~9223372036854775807

  • _int64

    (8个字节,64位)
    unsigned _int64的最大值:0~18446744073709551615
    _int64:-9223372036854775808~9223372036854775807

其中int 和 long 的区别

  • 早期的操作系统是16位系统

    int用二字节表示,范围是-32768~32767;

    long用4字节表示,范围是-2147483648~2147483647。

  • 后来发展到32位操作系统

    int 用4字节表示,与long相同。

  • 目前的操作系统已发展到64位操作系统,但因程序编译工艺的不同,两者表现出不同的差别:

    32位编译系统:int占四字节,与long相同。

    64位编译系统:int占四字节,long占8字节,long数据范围变为:-2^63 ~ 2^63-1

### C/C++ 中 `long long` 与 `long long int` 的区别及用法 在 C/C++ 编程语言中,`long long` `long long int` 实际上是完全相同的类型定义[^3]。两者都表示一种更大的整数数据类型,通常占用 8 字节(具体取决于编译器平台)。这种类型的取值范围是从 `-9223372036854775808` 到 `+9223372036854775807`。 #### 定义上的差异 尽管语法上允许写成 `long long int` 或者简化的 `long long`,但实际上它们没有任何功能上的差别。标准规定 `long long` 已经隐含了它是整数类型的一部分,因此附加的 `int` 关键字完全是冗余的。出于简洁性可读性的考虑,大多数开发者更倾向于使用 `long long` 表达方式[^3]。 #### 使用场景举例 当需要处理非常大的整数值时,可以采用如下方法声明变量并初始化: ```cpp #include <iostream> using namespace std; int main(){ long long largeNumber = 1234567890123LL; // LL 后缀表明这是一个 long long 常量 cout << "Large Number: " << largeNumber << endl; // 如果要将字符串转换为此种大整型,则利用之前提到的方法 string strNum = "9223372036854775807"; try{ long long convertedNum = stoll(strNum); // 将字符串安全地转为 long long 类型 cout << "Converted Large Number: " << convertedNum << endl; } catch(const invalid_argument& e){ cerr << "Invalid argument exception caught!" << endl; } return 0; } ``` 上述代码展示了如何通过后缀 `LL` 来指定常量属于 `long long` 类型以及怎样借助 `std::stoll()` 函数完成从字符串到 `long long` 数字形式的安全转型操作[^1]。 #### 平台依赖性注意点 需要注意的是,在某些特定平台上或者旧版编译环境下,可能对于这些关键字的支持存在细微变化甚至不一致的情况。所以建议始终查阅目标环境下的文档来确认确切行为[^2]。
评论 6
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

Stig_Q

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值