Add() 方法不会 return 正确的结果
Add() method won't return correct result
所以我必须制作一个 add 方法,该方法将采用两个 16 位整数和 return 结果,而不使用算术运算符。不幸的是,当输入 5 和 10 这样的两个数字时,它 return 是 0 而不是 15。我的代码有什么地方做错了吗?代码如下,在 C
中完成
addition_subtraction_result add(uint16_t augend, uint16_t addend) {
addition_subtraction_result addition;
while (addend != 0){
int carry = augend & addend;
augend = augend ^ addend;
addend = carry << 1;
}
addition.overflow = false;
return addition;
}
如果您需要更多信息,请告诉我。谢谢!
您 return addition
(希望按值)并且您唯一设置的是 addition.overflow = false;
所以我必须制作一个 add 方法,该方法将采用两个 16 位整数和 return 结果,而不使用算术运算符。不幸的是,当输入 5 和 10 这样的两个数字时,它 return 是 0 而不是 15。我的代码有什么地方做错了吗?代码如下,在 C
中完成addition_subtraction_result add(uint16_t augend, uint16_t addend) {
addition_subtraction_result addition;
while (addend != 0){
int carry = augend & addend;
augend = augend ^ addend;
addend = carry << 1;
}
addition.overflow = false;
return addition;
}
如果您需要更多信息,请告诉我。谢谢!
您 return addition
(希望按值)并且您唯一设置的是 addition.overflow = false;