回覆列表
  • 1 # 阿福福福福福

    我覺得吧,你問這個問題,應該是想了解怎麼儲存超大數字,那麼,如果你真有一個超大的數字,你可以分段儲存啊,就好像小學數學裡面把大數分成億級,萬級和個級一樣。

  • 2 # PC維修小磨嘰

    廣而泛之不談具體場景吧。

    我們可以根據數字的大小動態分配記憶體,位數不夠了就再往上加。就好比我們從小學的加法從來沒有限制過運算元的大小。紙有多長就能寫多長。

    只是這麼做我們就不能享受機器語言中由硬體對整個整數所有32個位批次處理並且解決進位的待遇了。我們必須手動迭代,管理進位。

    打個最直觀但低效的例子。我們可以使用連結串列,將二進位制數的低數位放在列表頭方向,進行比如加法運算時同時迭代兩個運算元的連結串列,按位相加,再加上上一位的進位,如此構造結果。這甚至是可以單純靠布林邏輯而不依賴硬體加法實現

    當然,我們沒有必要完全捨棄硬體帶來的"批處理"功能。而且事實上,硬體中的"行波進位加法器"就是透過上面描述的原理實現的。只是行波進位加法器使用定長陣列罷了。那麼,我們可以在陣列或者連結串列中,以硬體一批次能處理的大小儲存大整數,用硬體實現的加法完成組內進位。而硬體加法產生溢位時透過比如在某一特殊暫存器中立下的flag告訴我們是否應該往下一組數位中輸入進位。

  • 中秋節和大豐收的關聯?
  • 冷暴力算家暴嗎?