我正在嘗試爲長號實現長分區。不幸的是,由於嵌入式編程的侷限性,我不能使用像GMP這樣的庫。此外,我想要學習如何實施它的智力活動。到目前爲止,我已經使用任意長度的字節數組完成了加法和乘法運算(因此每個字節都像是一個256位的基數)。如何實現巨大數字的長分區(bignums)
我只是試圖開始實施師/模數,我想知道從哪裏開始?我在網上發現了很多高度優化的(也就是不可讀的)代碼,這對我沒有幫助,而且我發現了很多高技術數學白皮書,我無法彌合理論和實施之間的差距。
如果有人可以推薦一種流行的算法,並指向我一個簡單易懂的解釋,它傾向於implmenentation,那太棒了。
-edit:我需要的算法,它工作時的股息〜4000比特,並且除數〜2000bits
-edit:請問與基地-256算法的工作? http://courses.cs.vt.edu/~cs1104/BuildingBlocks/divide.030.html
-edit:這是我真的應該使用的算法(牛頓師)嗎? http://en.wikipedia.org/wiki/Division_(digital)#Newton.E2.80.93Raphson_division
我發現這個,但我不確定它會是一個很好的算法,數字> 2048位? http://stackoverflow.com/questions/2525172/custom-very-long-int-division-issue – Chris 2010-07-07 23:53:31
我也發現這篇論文,對我來說這是一個很好的算法嗎? http://www.brinch-hansen.net/papers/1994b.pdf – Chris 2010-07-07 23:57:17