Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

Convert Hex to Double

Tags:

c#

how do you set specific bits for a double?

For an int I'd do something like this:

public static int Value { get { return 0xfff8; } }

What should I do for double?

public static double Value { get { return 0xfff8; } }

I'm a bit concerned that I may get an implicit conversion from an int representation of 0xfff8 to the double floating point representation. However, I really want that 0xfff8 bit pattern regardless of the type.

like image 250
sgtz Avatar asked Sep 01 '11 15:09

sgtz


2 Answers

Look at the BitConverter class or go unsafe.

Unsafe example (untested):

public unsafe double FromLong(long x)
{
  return *((double*)&x);
}

BitConverter example:

double d = BitConverter.Int64BitsToDouble(0xdeadbeef);

http://msdn2.microsoft.com/en-us/library/system.bitconverter.int64bitstodouble

like image 120
leppie Avatar answered Oct 02 '22 18:10

leppie


byte bTemp = Convert.ToByte(hexValueInString, 16);
double doubleTemp = Convert.ToDouble(bTemp);

I'm using .NET 4.0

like image 39
JoeManiaci Avatar answered Oct 02 '22 19:10

JoeManiaci