如何爲雙精度值設置特定的位數?將十六進制轉換爲雙精度值
對於int我會做這樣的事情:
public static int Value { get { return 0xfff8; } }
我應該怎麼雙嗎?
public static double Value { get { return 0xfff8; } }
我有點擔心,我可能會得到一個int形式的0xfff8隱式轉換爲雙浮點表示。不過,我真的希望0xfff8位模式爲,不管的類型。
如何爲雙精度值設置特定的位數?將十六進制轉換爲雙精度值
對於int我會做這樣的事情:
public static int Value { get { return 0xfff8; } }
我應該怎麼雙嗎?
public static double Value { get { return 0xfff8; } }
我有點擔心,我可能會得到一個int形式的0xfff8隱式轉換爲雙浮點表示。不過,我真的希望0xfff8位模式爲,不管的類型。
看看BitConverter
課程或去unsafe
。
不安全的例子(未經測試):
public unsafe double FromLong(long x)
{
return *((double*)&x);
}
BitConverter例如:
double d = BitConverter.Int64BitsToDouble(0xdeadbeef);
http://msdn2.microsoft.com/en-us/library/system.bitconverter.int64bitstodouble
byte bTemp = Convert.ToByte(hexValueInString, 16);
double doubleTemp = Convert.ToDouble(bTemp);
我使用.NET 4.0
@MGZero:咦? ??? – leppie
避孕套和不安全的性玩笑。 – MGZero