2010-08-06 60 views
3

我有一個三字節的數組,我想用c#將數組轉換爲double。請引導我。字節數組在C#中的雙重轉換#

+2

提供您的代碼將是一個良好的開端,以得到一個答案你用什麼 – 2010-08-06 07:13:18

+0

端符號? – 2010-08-06 07:56:31

回答

2

那麼一個double是8個字節的數組,所以3個字節你不會有所有可能的值。

做你想做什麼:

var myBytes[] = {0,0,0,0,0,1,1,2}; //assume you pad your array with enough zeros to make it 8 bytes. 
var myDouble = BitConverter.ToDouble(myBytes,0); 
+0

我已經嘗試過這種方法,但它會導致異常。我不知道爲什麼。 – Siddiqui 2010-08-06 07:20:20

+0

您的數據是否處於正確的浮點格式(我相信C#使用標準IEEE浮點格式) – Alan 2010-08-06 07:23:39

+0

好吧我重新檢查我的代碼。 – Siddiqui 2010-08-06 07:27:29

4

那麼,這取決於你想要做什麼轉換。

您可以轉換字節(以正確的格式)轉換成使用BitConverter.ToDouble一個double - 但只有字節這是一個有些奇怪 - 畢竟,一個double有64位信息,正常。這三個字節如何表示一個數字?基本上什麼是格式?當你知道了,其餘的可能很容易。

2

取決於字節中存儲的是什麼,但是您可能只能填充5個字節,全部包含0,然後使用BitConverter.ToDouble