C#如何从double中提取字节

C# How to extract bytes from double

如何从 double 类型中提取字节。我知道它有 8 个字节,就像 long。我如何创建一个 long 变量,它具有与 double 相同的字节数。

double a = 1.5;
long b = (long)a; // <- this returns 1
// i want to get this: 0 01111111111 1000000000000000000000000000000000000000000000000000
//which is 4609434218613702656 as long (I guess :) )

请问我怎样才能快速做到这一点?

你可以这样获取

double a = 1.5;
long l = BitConverter.ToInt64(BitConverter.GetBytes(a), 0);

会是4609434218613702656

正如@harold 所建议的那样

var l2 = BitConverter.DoubleToInt64Bits(a);

也可以