2014-12-22 26 views
1

在基於堆棧的虛擬機上存儲十進制數的常見做法是什麼?我需要專門的指導嗎? 我當前虛擬機的工作方式是遍歷整數數組,數組中的每個值都是一個指令,如PUSHI(將整數推入堆棧)或ADD(彈出頂部兩個值添加它們並推送結果)。但是,我不確定如何取像1.234這樣的小數點並將其推送到堆棧。在基於堆棧的虛擬機上存儲十進制數字?

+0

「十進制數」是指一個固定大小的對象,它包含一個帶有固定有界精度的小數部分,或一個固定精度的浮點數或一個保持任意可變數字位數的數字, 或者是什麼? – supercat

+0

你可以爲我貶低這件事嗎?或者給我一些例子,我不太明白:( – user2588174

+0

)你想要一個十進制類型,它可以精確地表示任意大小的十進制數,具有無限精度(僅受總內存限制),或者對大小和精度(例如小數點左邊的十二位數字和右邊的六位數字)? – supercat

回答

0

您必須在某處提供某些類型信息,例如在指令中,或通過「標記」數據。無論採用哪種方式,您都可以將原始十進制數轉換爲與您所關心的特定位模式匹配的整數。

例如,IEEE 754是浮點數的通用標準二進制編碼。

+0

乾杯。我結束了查找編碼,並在我的虛擬機中實現它:)我改變了我的虛擬機存儲一個對象結構,其中包含int值和數據類型的枚舉(int或編碼浮點數)。 – user2588174