因此,我必须创建一个add方法,该方法将接受两个16位整数并返回结果,而不使用算术运算符。不幸的是,当输入像5和10这样的两个数字时,它返回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;
}
如果你需要更多的信息,请告诉我。谢谢!您返回addition
(希望按值),您唯一设置的是addition.overflow = false;