Welcome to OGeek Q&A Community for programmer and developer-Open, Learning and Share
Welcome To Ask or Share your Answers For Others

Categories

0 votes
207 views
in Technique[技术] by (71.8m points)

c# - Convert Hex to Double

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.

See Question&Answers more detail:os

与恶龙缠斗过久,自身亦成为恶龙;凝视深渊过久,深渊将回以凝视…
Welcome To Ask or Share your Answers For Others

1 Reply

0 votes
by (71.8m points)

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


与恶龙缠斗过久,自身亦成为恶龙;凝视深渊过久,深渊将回以凝视…
OGeek|极客中国-欢迎来到极客的世界,一个免费开放的程序员编程交流平台!开放,进步,分享!让技术改变生活,让极客改变未来! Welcome to OGeek Q&A Community for programmer and developer-Open, Learning and Share
Click Here to Ask a Question

...