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);
也可以
如何从 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);
也可以