日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

二进制数的加法步骤解析

發布時間:2023/12/18 编程问答 28 豆豆
生活随笔 收集整理的這篇文章主要介紹了 二进制数的加法步骤解析 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

文章目錄

      • 位運算
      • 二進制數加法步驟
        • 例子
        • 代碼演示

二進制的加法需要用到位運算,所以先來復習下位運算。

位運算

運算符號(java)描述
位與&都為1,結果為1,否則為0。
位或|有一個為1或兩個位都為1,則結果為1,否則為0。換句話說,只有兩個都為0,則結果為0 ,其它為1。
異或^兩個位相同,其為0。兩個位不同,其為1。
取反~0變為1,1變為0。
左移<<將二進制左移指定位數,右側補0
右移>>將二進制由移指定位數,右側超出部分截取丟棄。如a>>b相當于a/2^b。

二進制數加法步驟

  • 將兩二進制數異或,獲取無需進位的二進制數
  • 將兩二進制數位與,獲取需進位的二進制數
  • 將2步驟的進位二進制數左移1位,得到進位之后的二進制數
  • 將3步驟的已進位的二進制數與1步驟的不需進位的二進制數位與,如果位與的結果等于0,即表示無進位需處理了,進入步驟4。如果結果不為0,則表明還有進位需要處理,則繼續重復1、2、3、4步驟。
  • 將1、2步驟的結果進行位或,其所得結果即為加法之后的二進制數。
  • 例子

    如,二進制數0100(4)與1110(14)相加得二進制結果10010(18),其步驟如下:

    代碼演示

    python.

    def add(a, b):ncb = a ^ b # 不需要進位的二進制數部分cb = (a & b) << 1 # 進位的二進制數部分if ncb & cb != 0: # 如果位與之后的結果還有1,則表示還有需要進位的return add(ncb, cb) # 遞歸return ncb | cb # 進位與不進位的二進制取位或得到結果if __name__ == '__main__':print(add(0, 3))

    總結

    以上是生活随笔為你收集整理的二进制数的加法步骤解析的全部內容,希望文章能夠幫你解決所遇到的問題。

    如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。