2017-08-16 9 views
0

Comment puis-je extraire des octets du type double. Je sais qu'il a 8 octets, tout comme long. Comment puis-je créer une variable long qui a les mêmes octets que le double a.C# Comment extraire des octets à partir du 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 :)) 

Comment puis-je faire cela rapidement, s'il vous plaît?

+2

double possible de [Comment obtenir le bits d'un "double" comme "long"] (https://stackoverflow.com/questions/4475611/how-to-get-the-bits -de-un-double-comme-un-long) – harold

Répondre

2

Vous pouvez l'obtenir comme celui-ci

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

Il sera 4609434218613702656

Comme suggéré @harold

var l2 = BitConverter.DoubleToInt64Bits(a); 

est possible aussi

+0

BitConverter a également DoubleToInt64Bits si – harold