色婷婷狠狠18禁久久YY,CHINESE性内射高清国产,国产女人18毛片水真多1,国产AV在线观看

銀行服務器是如何實現存儲超大數字而不會溢出的

榮姿康2年前11瀏覽0評論

銀行服務器是如何實現存儲超大數字而不會溢出的?

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

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

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

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

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

如果是浮點數的話就用科學計數法吧。"浮點"這個叫法的來源就是這個。