long类型需要注意

今天一个代码出bug,一个list里面放的是2个Long类型值,然后,取出这2个Long值做比较,结果相同值比较是false.

注意包装类用.equals(),或者取得他们的值 类实例.longValue();再比较



在编程中,`long long` 是 C/C++ 及一些其他语言(如 Python 的底层实现或某些扩展)中的整数数据类型之一。它用于表示比 `long` 类型范围更大的整数值,特别适用于需要处理非常大整数的场景。 ### 数据类型大小与取值范围 - 在大多数现代系统上,`long long` 通常是 **64位**(8字节)有符号整数[^2]。 - 其取值范围为: - 最小值:`-2^63`(即 `-9,223,372,036,854,775,808`) - 最大值:`2^63 - 1`(即 `9,223,372,036,854,775,807`) 这个范围与 Java 中的 `long` 类型相同,但在 C/C++ 中,`long long` 是标准的一部分,而 Java 并不支持 `long long` 类型。 ### 使用方式 在 C/C++ 中声明和使用 `long long` 类型变量的方式如下: ```cpp long long bigNumber = 9223372036854775807LL; // 注意后缀 LL 表示 long long 常量 ``` 如果省略 `LL` 后缀,编译器可能会将常量视为 `int` 或 `long` 类型,从而导致溢出或警告。 ### 编程实例 以下是一个简单的 C++ 示例,演示如何使用 `long long` 类型进行大整数运算: ```cpp #include <iostream> using namespace std; int main() { long long a = 9223372036854775807LL; long long b = 1LL; long long sum = a + b; cout << "a = " << a << endl; cout << "b = " << b << endl; cout << "sum = " << sum << endl; // 输出: -9223372036854775808 (溢出) return 0; } ``` 在这个例子中,当 `a + b` 超出 `long long` 的最大值时,会发生溢出行为,结果是未定义的(通常表现为回绕到最小值)。 ### 注意事项 - 在进行算术运算时要小心避免溢出,特别是在加法、乘法等操作中涉及极大数值时。 - 如果需要更高精度的整数运算,可以考虑使用第三方库,如 GMP(GNU Multiple Precision Arithmetic Library)。 ### 应用场景 - 高性能计算中的大整数处理 - 游戏开发中用于存储得分或资源数量 - 大数据系统中用于计数器、日志时间戳等 - 加密算法中对大素数的操作 ---
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值