# BitConverter.DoubleToInt64Bits(Double) Método

## Definición

Convierte el número de punto flotante de precisión doble especificado en un entero de 64 bits con signo.Converts the specified double-precision floating point number to a 64-bit signed integer.

``````public:
static long DoubleToInt64Bits(double value);``````
``public static long DoubleToInt64Bits (double value);``
``static member DoubleToInt64Bits : double -> int64``
``Public Shared Function DoubleToInt64Bits (value As Double) As Long``

#### Parámetros

value
Double

Número que se va a convertir.The number to convert.

#### Devoluciones

Int64

Entero de 64 bits con signo cuyo valor es equivalente a `value`.A 64-bit signed integer whose value is equivalent to `value`.

## Ejemplos

En el ejemplo de código siguiente se convierten los patrones de bits de varios Double valores en Int64 valores con el `DoubleToInt64Bits` método.The following code example converts the bit patterns of several Double values to Int64 values with the `DoubleToInt64Bits` method.

``````// Example of the BitConverter::DoubleToInt64Bits method.
using namespace System;

// Reinterpret the double argument as an __int64.
void DoubleToLongBits( double argument )
{
__int64 longValue;
longValue = BitConverter::DoubleToInt64Bits( argument );

// Display the resulting __int64 in hexadecimal.
Console::WriteLine( "{0,25:E16}{1,23:X16}", argument, longValue );
}

int main()
{
Console::WriteLine( "This example of the BitConverter::DoubleToInt64Bits( "
"double ) \nmethod generates the following output.\n" );
Console::WriteLine( "{0,25:E16}{1,23:X16}", "double argument", "hexadecimal value" );
Console::WriteLine( "{0,25:E16}{1,23:X16}", "---------------", "-----------------" );

// Convert double values and display the results.
DoubleToLongBits( 1.0 );
DoubleToLongBits( 15.0 );
DoubleToLongBits( 255.0 );
DoubleToLongBits( 4294967295.0 );
DoubleToLongBits( 0.00390625 );
DoubleToLongBits( 0.00000000023283064365386962890625 );
DoubleToLongBits( 1.234567890123E-300 );
DoubleToLongBits( 1.23456789012345E-150 );
DoubleToLongBits( 1.2345678901234565 );
DoubleToLongBits( 1.2345678901234567 );
DoubleToLongBits( 1.2345678901234569 );
DoubleToLongBits( 1.23456789012345678E+150 );
DoubleToLongBits( 1.234567890123456789E+300 );
DoubleToLongBits( Double::MinValue );
DoubleToLongBits( Double::MaxValue );
DoubleToLongBits( Double::Epsilon );
DoubleToLongBits( Double::NaN );
DoubleToLongBits( Double::NegativeInfinity );
DoubleToLongBits( Double::PositiveInfinity );
}

/*
This example of the BitConverter::DoubleToInt64Bits( double )
method generates the following output.

---------------      -----------------
1.0000000000000000E+000       3FF0000000000000
1.5000000000000000E+001       402E000000000000
2.5500000000000000E+002       406FE00000000000
4.2949672950000000E+009       41EFFFFFFFE00000
3.9062500000000000E-003       3F70000000000000
2.3283064365386963E-010       3DF0000000000000
1.2345678901230000E-300       01AA74FE1C1E7E45
1.2345678901234500E-150       20D02A36586DB4BB
1.2345678901234565E+000       3FF3C0CA428C59FA
1.2345678901234567E+000       3FF3C0CA428C59FB
1.2345678901234569E+000       3FF3C0CA428C59FC
1.2345678901234569E+150       5F182344CD3CDF9F
1.2345678901234569E+300       7E3D7EE8BCBBD352
-1.7976931348623157E+308       FFEFFFFFFFFFFFFF
1.7976931348623157E+308       7FEFFFFFFFFFFFFF
4.9406564584124654E-324       0000000000000001
NaN       FFF8000000000000
-Infinity       FFF0000000000000
Infinity       7FF0000000000000
*/
``````
``````// Example of the BitConverter.DoubleToInt64Bits method.
using System;

class DoubleToInt64BitsDemo
{
const string formatter = "{0,25:E16}{1,23:X16}";

// Reinterpret the double argument as a long.
public static void DoubleToLongBits( double argument )
{
long longValue;
longValue = BitConverter.DoubleToInt64Bits( argument );

// Display the resulting long in hexadecimal.
Console.WriteLine( formatter, argument, longValue );
}

public static void Main( )
{
Console.WriteLine(
"This example of the BitConverter.DoubleToInt64Bits( " +
"double ) \nmethod generates the following output.\n" );
Console.WriteLine( formatter, "double argument",
Console.WriteLine( formatter, "---------------",
"-----------------" );

// Convert double values and display the results.
DoubleToLongBits( 1.0 );
DoubleToLongBits( 15.0 );
DoubleToLongBits( 255.0 );
DoubleToLongBits( 4294967295.0 );
DoubleToLongBits( 0.00390625 );
DoubleToLongBits( 0.00000000023283064365386962890625 );
DoubleToLongBits( 1.234567890123E-300 );
DoubleToLongBits( 1.23456789012345E-150 );
DoubleToLongBits( 1.2345678901234565 );
DoubleToLongBits( 1.2345678901234567 );
DoubleToLongBits( 1.2345678901234569 );
DoubleToLongBits( 1.23456789012345678E+150 );
DoubleToLongBits( 1.234567890123456789E+300 );
DoubleToLongBits( double.MinValue );
DoubleToLongBits( double.MaxValue );
DoubleToLongBits( double.Epsilon );
DoubleToLongBits( double.NaN );
DoubleToLongBits( double.NegativeInfinity );
DoubleToLongBits( double.PositiveInfinity );
}
}

/*
This example of the BitConverter.DoubleToInt64Bits( double )
method generates the following output.

---------------      -----------------
1.0000000000000000E+000       3FF0000000000000
1.5000000000000000E+001       402E000000000000
2.5500000000000000E+002       406FE00000000000
4.2949672950000000E+009       41EFFFFFFFE00000
3.9062500000000000E-003       3F70000000000000
2.3283064365386963E-010       3DF0000000000000
1.2345678901230000E-300       01AA74FE1C1E7E45
1.2345678901234500E-150       20D02A36586DB4BB
1.2345678901234565E+000       3FF3C0CA428C59FA
1.2345678901234567E+000       3FF3C0CA428C59FB
1.2345678901234569E+000       3FF3C0CA428C59FC
1.2345678901234569E+150       5F182344CD3CDF9F
1.2345678901234569E+300       7E3D7EE8BCBBD352
-1.7976931348623157E+308       FFEFFFFFFFFFFFFF
1.7976931348623157E+308       7FEFFFFFFFFFFFFF
4.9406564584124654E-324       0000000000000001
NaN       FFF8000000000000
-Infinity       FFF0000000000000
Infinity       7FF0000000000000
*/
``````
``````' Example of the BitConverter.DoubleToInt64Bits method.
Module DoubleToInt64BitsDemo

Const formatter As String = "{0,25:E16}{1,23:X16}"

' Reinterpret the Double argument as a Long.
Sub DoubleToLongBits( argument As Double )

Dim longValue    As Long
longValue = BitConverter.DoubleToInt64Bits( argument )

' Display the resulting Long in hexadecimal.
Console.WriteLine( formatter, argument, longValue )
End Sub

Sub Main( )

Console.WriteLine( _
"This example of the BitConverter.DoubleToInt64Bits( " & _
"Double ) " & vbCrLf & "method generates the " & _
"following output." & vbCrLf )
Console.WriteLine( formatter, "Double argument", _
Console.WriteLine( formatter, "---------------", _
"-----------------" )

' Convert Double values and display the results.
DoubleToLongBits( 1.0 )
DoubleToLongBits( 15.0 )
DoubleToLongBits( 255.0 )
DoubleToLongBits( 4294967295.0 )
DoubleToLongBits( 0.00390625 )
DoubleToLongBits( 0.00000000023283064365386962890625 )
DoubleToLongBits( 1.234567890123E-300 )
DoubleToLongBits( 1.23456789012345E-150 )
DoubleToLongBits( 1.2345678901234565 )
DoubleToLongBits( 1.2345678901234567 )
DoubleToLongBits( 1.2345678901234569 )
DoubleToLongBits( 1.23456789012345678E+150 )
DoubleToLongBits( 1.234567890123456789E+300 )
DoubleToLongBits( Double.MinValue )
DoubleToLongBits( Double.MaxValue )
DoubleToLongBits( Double.Epsilon )
DoubleToLongBits( Double.NaN )
DoubleToLongBits( Double.NegativeInfinity )
DoubleToLongBits( Double.PositiveInfinity )
End Sub
End Module

' This example of the BitConverter.DoubleToInt64Bits( Double )
' method generates the following output.
'
'           ---------------      -----------------
'   1.0000000000000000E+000       3FF0000000000000
'   1.5000000000000000E+001       402E000000000000
'   2.5500000000000000E+002       406FE00000000000
'   4.2949672950000000E+009       41EFFFFFFFE00000
'   3.9062500000000000E-003       3F70000000000000
'   2.3283064365386963E-010       3DF0000000000000
'   1.2345678901230000E-300       01AA74FE1C1E7E45
'   1.2345678901234500E-150       20D02A36586DB4BB
'   1.2345678901234565E+000       3FF3C0CA428C59FA
'   1.2345678901234567E+000       3FF3C0CA428C59FB
'   1.2345678901234569E+000       3FF3C0CA428C59FC
'   1.2345678901234569E+150       5F182344CD3CDF9F
'   1.2345678901234569E+300       7E3D7EE8BCBBD352
'  -1.7976931348623157E+308       FFEFFFFFFFFFFFFF
'   1.7976931348623157E+308       7FEFFFFFFFFFFFFF
'   4.9406564584124654E-324       0000000000000001
'                       NaN       FFF8000000000000
'                 -Infinity       FFF0000000000000
'                  Infinity       7FF0000000000000
``````

## Comentarios

El orden de los bits en el entero devuelto por el DoubleToInt64Bits método depende de si la arquitectura del equipo es Little-endian o Big-Endian.The order of bits in the integer returned by the DoubleToInt64Bits method depends on whether the computer architecture is little-endian or big-endian.