亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

c++ 用位運算來計算

c++ 用位運算來計算

C++
慕碼人8056858 2018-07-29 11:00:46
輸入兩個數字a和b用位運算輸出a-b的值有多組直到輸入EOF...
查看完整描述

1 回答

?
幕布斯7119047

TA貢獻1794條經驗 獲得超8個贊

模擬二進制運算。


加法運算:將一個整數用二進制表示,其加法運算就是:相異(^)時,本位為1,進位為0;同為1時本位為0,進位為1;同為0時,本位進位均為0。所以,不計進位的和為sum = a^b,進位就是arr = a&b,(與sum相加時先左移一位,因為這是進位)。完成加法直到進位為0.

int add(int a, int b) //遞歸形式

{

    if(b==0) //遞歸結束條件:如果右加數為0,即不再有進位了,則結束。

        return a;

    int s = a^b;

    int c = (a&b)<<1; //進位左移1位,達到進位的目的。

    return add(s, c); //再把'和'和'進位'相加。遞歸實現。

}


int add(int a, int b) //非遞歸形式

{

    int s, c;

    while(b != 0)

    {

        s = a^b;

        c = (a&b)<<1;

        a = s;

        b = c;

    }

    return a;


查看完整回答
反對 回復 2018-09-01
  • 1 回答
  • 0 關注
  • 773 瀏覽

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號