2013-11-26 107 views
0

我想做一個新的浮點類型的大小爲128位,指數將有4個字節(32位)和小數將有12個字節(96位),我如何可以在C++中創建此類型,其中我將能夠執行輸入,輸出,+, - ,*,/操作。新浮點數

[我想到的是類C++的,但我不明白我怎麼會奶源了指數和分數之間指定長度]

我已經試過「位集」性病類,但它有一個巨大的大小比較我需要例如「std :: bitset < 16> foo;」給出一個8字節的大小。

任何建議!

+4

新的char [16],並且你有一個長度爲128位的位字段。 – erenon

+0

_'「std :: bitset <16> foo;」給出一個8字節的大小。'你檢查了一個指針的大小嗎?請顯示一些代碼! –

+0

也許interess你:http://stackoverflow.com/questions/4798777/is-there-a-c-equivalent-to-javas-bigdecimal – Paranaix

回答

1

您必須構建自己的數據類型並實現您想要使用的所有操作。當架構僅支持32位本地數據時,這正是編譯器模擬64位數據集的方式。

所以有兩個成員的類/結構是正確的出發點。您現在必須執行基本操作:+, - ,*,/。添加和子容易,你需要更多關注*和/。我可以告訴你的是,通常使用重複添加和子操作來編譯實現這些操作。

+0

謝謝,你可以幫我用一篇論文或網站的網頁,我已經找到了一個合適的搜索了很多 – user3038489

+0

@ user3038489:搜索「IEEE浮點格式」的一些不同浮點的例子格式。 –