2012-02-17 78 views
2

我正在尋找這談論按位運算的教程,例如加,減,乘,除,也許其他運營商更復雜的像模塊化,模塊化逆等按位算術教程

其實我想爲沒有這樣的庫的嵌入式系統實現大號碼庫。所以我想學習如何處理帶符號的大整數以及如何通過操縱比特來進行算術計算。現在我唯一的想法是將我的大整數保存在一個大的uint8_t數組中,其中1位保留爲符號。例如,如果我需要一個160位的整數,那麼我需要一個數組uint8_t num [21]。

我必須學習的基本知識是什麼?我在谷歌搜索,但我還沒有找到很多很好的解釋教程。或者更確切地說,我不知道我必須使用哪些關鍵字。

所以我需要你的建議。如果您知道我在哪裏可以找到有趣的教程,請在此處張貼鏈接。 PDF,網頁,視頻任何東西。

非常感謝。

+0

谷歌和維基百科應該幫助。 – 2012-02-17 01:21:51

+0

你打算在c中編寫這個庫嗎?如果是的話,我不明白爲什麼你需要知道如何通過操縱位執行算術計算......組合電路的主題是巨大的,並不總是微不足道的......或者我可能誤解了你的問題。 – Saphrosit 2012-02-17 01:32:25

+0

也許看看[GNU MP](http://gmplib.org/),它是C中實現的一個bignum庫。 – larsks 2012-02-17 01:55:16

回答

1

你感興趣的是所謂的高精度計算的話題。

進一步的信息可以在這裏找到:http://en.wikipedia.org/wiki/Arbitrary-precision_arithmetic

至於「基礎知識」而言:你將需要學習的算法來執行運算。你還需要對動態內存管理有相當的理解。我懷疑你使用數組的方法可能非常笨拙和浪費。

1

幾周前,當我在Stack Overflow上流浪時,發現this article,也許這可以幫到你。

不幸的是,我沒有看到我發佈的第一個鏈接上的算術運算。

對於算術運算,請看here

由於邏輯門=邏輯運算操作,電子與編程中相同,概念相同。在該鏈接的「另請參見」部分中,還有更多需要幫助的內容。 (特別是二進制乘法器)

PM我,如果你在做的事情上取得成功,我也在研究它是如何工作的。

+0

非常感謝,您的第一個鏈接也非常有幫助。 – Allopopo 2012-02-17 11:59:12