2014-07-03 46 views
1

我有我從我的溫度傳感器(俄勒岡州傳感器)收到的科學數字10579019E063,我想解析。如何在科學數字上使用按位運算符?

我想轉換爲C#的Python的例子:

checksum = 0xE + 0xA + 0x4 + 0xC; 
checksum -= (value & 0xF) * 0x10; 
checksum -= 0xA; 
value >>= 8; 

10579019E063,正確分析它:

double value = double.Parse("10579019E063"); 

但現在Visual Studio中抱怨說,它不能執行按位運算值,因爲它不是一個整數。

有人有線索嗎?我不能簡單地投它,我失去精度?

+1

溫度等於10^70? – Xaruth

回答

4

按位操作對雙打沒有任何意義,因爲它們的結構與整數非常不同。

如果您處理的數字大於2^31,那麼您可以使用long。

如果連這還不夠大,你需要切換到BigInteger的(在System.Numerics命名空間),具有對位運算的實現。

10579019E063是太大了,所以你需要的BigInteger。