簡體   English   中英

Add() 方法不會返回正確的結果

[英]Add() method won't return correct result

因此,我必須創建一個 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;

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM