C++整数相加
时间: 2025-06-16 09:24:33 浏览: 9
### C++ 实现两个整数相加的功能
以下是一个完整的 C++ 示例代码,用于计算两个整数的和。此代码通过标准输入接收两个整数,并输出它们的和[^1]。
```cpp
#include <iostream>
using namespace std;
int main() {
int a, b, sum;
cout << "Enter two integers: ";
cin >> a >> b;
sum = a + b;
cout << "The sum of " << a << " and " << b << " is " << sum << endl;
return 0;
}
```
在上述代码中,程序首先提示用户输入两个整数,然后使用 `cin` 接收输入值。接着,通过将两个整数相加并将结果存储在变量 `sum` 中完成加法操作。最后,程序输出计算结果[^1]。
此外,如果需要检测整数相加是否发生溢出,可以参考以下示例代码[^2]:
```cpp
#include <stdio.h>
#include <stdbool.h>
bool isIntegerOverflow(int a, int b) {
int sum = a + b;
bool sameSign = ((sum ^ a) >= 0) && ((sum ^ b) >= 0);
bool diffSign = ((sum ^ a) < 0) && ((sum ^ b) < 0);
return sameSign && diffSign;
}
int main() {
int a = 2147483647; // 最大正整数
int b = 1;
if (isIntegerOverflow(a, b)) {
printf("Integer overflow!\n");
} else {
printf("No integer overflow.\n");
}
return 0;
}
```
在此代码中,函数 `isIntegerOverflow` 用于检查两个整数相加是否会引发溢出。通过位运算符 `^` 检查符号位的变化来判断是否存在溢出情况。
### 使用位运算实现两数相加
除了传统的加法运算,还可以使用位运算实现两数相加。这种方法避免了直接使用加法运算符 `+`,具体实现如下[^3]:
```cpp
#include <iostream>
using namespace std;
int add(int num1, int num2) {
while (num2 != 0) {
int carry = (unsigned int)(num1 & num2) << 1; // 计算进位
num1 = num1 ^ num2; // 无进位相加
num2 = carry; // 更新为进位值
}
return num1;
}
int main() {
int a, b;
cout << "Enter two integers: ";
cin >> a >> b;
cout << "The sum of " << a << " and " << b << " is " << add(a, b) << endl;
return 0;
}
```
在上述代码中,函数 `add` 使用位运算实现两数相加。通过异或运算符 `^` 完成无进位相加,通过与运算符 `&` 和左移运算符 `<<` 计算进位值,并不断迭代直到没有进位为止[^3]。
阅读全文
相关推荐
















