BitConverter.ToInt64 方法

定义

重载

ToInt64(ReadOnlySpan<Byte>)

将只读字节范围转换为 64 位带符号整数。

ToInt64(Byte[], Int32)

返回由字节数组中指定位置的八个字节转换来的 64 位有符号整数。

ToInt64(ReadOnlySpan<Byte>)

将只读字节范围转换为 64 位带符号整数。

public:
 static long ToInt64(ReadOnlySpan<System::Byte> value);
public static long ToInt64 (ReadOnlySpan<byte> value);
static member ToInt64 : ReadOnlySpan<byte> -> int64
Public Shared Function ToInt64 (value As ReadOnlySpan(Of Byte)) As Long

参数

value
ReadOnlySpan<Byte>

包含要转换的字节的只读范围。

返回

Int64

表示已转换字节的 64 位带符号整数。

例外

value 的长度小于 8。

适用于

ToInt64(Byte[], Int32)

返回由字节数组中指定位置的八个字节转换来的 64 位有符号整数。

public:
 static long ToInt64(cli::array <System::Byte> ^ value, int startIndex);
public static long ToInt64 (byte[] value, int startIndex);
static member ToInt64 : byte[] * int -> int64
Public Shared Function ToInt64 (value As Byte(), startIndex As Integer) As Long

参数

value
Byte[]

包含要转换的八个字节的字节数组。

startIndex
Int32

value 内的起始位置。

返回

Int64

由八个字节构成、从 startIndex 开始的 64 位有符号整数。

例外

startIndex 大于等于 value 减 7 的长度,且小于等于 value 减 1 的长度。

valuenull

startIndex 小于零或大于 value 减 1 的长度。

示例

下面的代码示例使用ToInt64该方法将数组的Byte元素转换为Int64值。

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

// Convert eight byte array elements to an __int64 and display it.
void BAToInt64( array<unsigned char>^bytes, int index )
{
   __int64 value = BitConverter::ToInt64( bytes, index );
   Console::WriteLine( "{0,5}{1,27}{2,24}", index, BitConverter::ToString( bytes, index, 8 ), value );
}


// Display a byte array, using multiple lines if necessary.
void WriteMultiLineByteArray( array<unsigned char>^bytes )
{
   const int rowSize = 20;
   int iter;
   Console::WriteLine( "initial unsigned char array" );
   Console::WriteLine( "---------------------------" );
   for ( iter = 0; iter < bytes->Length - rowSize; iter += rowSize )
   {
      Console::Write( BitConverter::ToString( bytes, iter, rowSize ) );
      Console::WriteLine( "-" );

   }
   Console::WriteLine( BitConverter::ToString( bytes, iter ) );
   Console::WriteLine();
}

int main()
{
   array<unsigned char>^byteArray = {0,54,101,196,255,255,255,255,0,0,0,0,0,0,0,0,128,0,202,154,59,0,0,0,0,1,0,0,0,0,255,255,255,255,1,0,0,255,255,255,255,255,255,255,127,86,85,85,85,85,85,255,255,170,170,170,170,170,170,0,0,100,167,179,182,224,13,0,0,156,88,76,73,31,242};
   Console::WriteLine( "This example of the BitConverter::ToInt64( unsigned "
   "char[ ], int ) \nmethod generates the following output. It "
   "converts elements of a \nbyte array to __int64 values.\n" );
   WriteMultiLineByteArray( byteArray );
   Console::WriteLine( "{0,5}{1,27}{2,24}", "index", "array elements", "__int64" );
   Console::WriteLine( "{0,5}{1,27}{2,24}", "-----", "--------------", "-------" );
   
   // Convert byte array elements to __int64 values.
   BAToInt64( byteArray, 8 );
   BAToInt64( byteArray, 5 );
   BAToInt64( byteArray, 34 );
   BAToInt64( byteArray, 17 );
   BAToInt64( byteArray, 0 );
   BAToInt64( byteArray, 21 );
   BAToInt64( byteArray, 26 );
   BAToInt64( byteArray, 53 );
   BAToInt64( byteArray, 45 );
   BAToInt64( byteArray, 59 );
   BAToInt64( byteArray, 67 );
   BAToInt64( byteArray, 37 );
   BAToInt64( byteArray, 9 );
}

/*
This example of the BitConverter::ToInt64( unsigned char[ ], int )
method generates the following output. It converts elements of a
byte array to __int64 values.

initial unsigned char array
---------------------------
00-36-65-C4-FF-FF-FF-FF-00-00-00-00-00-00-00-00-80-00-CA-9A-
3B-00-00-00-00-01-00-00-00-00-FF-FF-FF-FF-01-00-00-FF-FF-FF-
FF-FF-FF-FF-7F-56-55-55-55-55-55-FF-FF-AA-AA-AA-AA-AA-AA-00-
00-64-A7-B3-B6-E0-0D-00-00-9C-58-4C-49-1F-F2

index             array elements                 __int64
-----             --------------                 -------
    8    00-00-00-00-00-00-00-00                       0
    5    FF-FF-FF-00-00-00-00-00                16777215
   34    01-00-00-FF-FF-FF-FF-FF               -16777215
   17    00-CA-9A-3B-00-00-00-00              1000000000
    0    00-36-65-C4-FF-FF-FF-FF             -1000000000
   21    00-00-00-00-01-00-00-00              4294967296
   26    00-00-00-00-FF-FF-FF-FF             -4294967296
   53    AA-AA-AA-AA-AA-AA-00-00         187649984473770
   45    56-55-55-55-55-55-FF-FF        -187649984473770
   59    00-00-64-A7-B3-B6-E0-0D     1000000000000000000
   67    00-00-9C-58-4C-49-1F-F2    -1000000000000000000
   37    FF-FF-FF-FF-FF-FF-FF-7F     9223372036854775807
    9    00-00-00-00-00-00-00-80    -9223372036854775808
*/
// Example of the BitConverter.ToInt64 method.
using System;

class BytesToInt64Demo
{
    const string formatter = "{0,5}{1,27}{2,24}";

    // Convert eight byte array elements to a long and display it.
    public static void BAToInt64( byte[ ] bytes, int index )
    {
        long value = BitConverter.ToInt64( bytes, index );

        Console.WriteLine( formatter, index,
            BitConverter.ToString( bytes, index, 8 ), value );
    }

    // Display a byte array, using multiple lines if necessary.
    public static void WriteMultiLineByteArray( byte[ ] bytes )
    {
        const int rowSize = 20;
        int iter;

        Console.WriteLine( "initial byte array" );
        Console.WriteLine( "------------------" );

        for( iter = 0; iter < bytes.Length - rowSize; iter += rowSize )
        {
            Console.Write(
                BitConverter.ToString( bytes, iter, rowSize ) );
            Console.WriteLine( "-" );
        }

        Console.WriteLine( BitConverter.ToString( bytes, iter ) );
        Console.WriteLine( );
    }

    public static void Main( )
    {
        byte[ ] byteArray = {
              0,  54, 101, 196, 255, 255, 255, 255,   0,   0,
              0,   0,   0,   0,   0,   0, 128,   0, 202, 154,
             59,   0,   0,   0,   0,   1,   0,   0,   0,   0,
            255, 255, 255, 255,   1,   0,   0, 255, 255, 255,
            255, 255, 255, 255, 127,  86,  85,  85,  85,  85,
             85, 255, 255, 170, 170, 170, 170, 170, 170,   0,
              0, 100, 167, 179, 182, 224,  13,   0,   0, 156,
             88,  76,  73,  31, 242 };

        Console.WriteLine(
            "This example of the BitConverter.ToInt64( byte[ ], " +
            "int ) \nmethod generates the following output. It " +
            "converts elements \nof a byte array to long values.\r\n" );

        WriteMultiLineByteArray( byteArray );

        Console.WriteLine( formatter, "index", "array elements", "long" );
        Console.WriteLine( formatter, "-----", "--------------", "----" );

        // Convert byte array elements to long values.
        BAToInt64( byteArray, 8 );
        BAToInt64( byteArray, 5 );
        BAToInt64( byteArray, 34 );
        BAToInt64( byteArray, 17 );
        BAToInt64( byteArray, 0 );
        BAToInt64( byteArray, 21 );
        BAToInt64( byteArray, 26 );
        BAToInt64( byteArray, 53 );
        BAToInt64( byteArray, 45 );
        BAToInt64( byteArray, 59 );
        BAToInt64( byteArray, 67 );
        BAToInt64( byteArray, 37 );
        BAToInt64( byteArray, 9 );
    }
}

/*
This example of the BitConverter.ToInt64( byte[ ], int )
method generates the following output. It converts elements
of a byte array to long values.

initial byte array
------------------
00-36-65-C4-FF-FF-FF-FF-00-00-00-00-00-00-00-00-80-00-CA-9A-
3B-00-00-00-00-01-00-00-00-00-FF-FF-FF-FF-01-00-00-FF-FF-FF-
FF-FF-FF-FF-7F-56-55-55-55-55-55-FF-FF-AA-AA-AA-AA-AA-AA-00-
00-64-A7-B3-B6-E0-0D-00-00-9C-58-4C-49-1F-F2

index             array elements                    long
-----             --------------                    ----
    8    00-00-00-00-00-00-00-00                       0
    5    FF-FF-FF-00-00-00-00-00                16777215
   34    01-00-00-FF-FF-FF-FF-FF               -16777215
   17    00-CA-9A-3B-00-00-00-00              1000000000
    0    00-36-65-C4-FF-FF-FF-FF             -1000000000
   21    00-00-00-00-01-00-00-00              4294967296
   26    00-00-00-00-FF-FF-FF-FF             -4294967296
   53    AA-AA-AA-AA-AA-AA-00-00         187649984473770
   45    56-55-55-55-55-55-FF-FF        -187649984473770
   59    00-00-64-A7-B3-B6-E0-0D     1000000000000000000
   67    00-00-9C-58-4C-49-1F-F2    -1000000000000000000
   37    FF-FF-FF-FF-FF-FF-FF-7F     9223372036854775807
    9    00-00-00-00-00-00-00-80    -9223372036854775808
*/
open System

let print obj1 obj2 obj3 = printfn $"{obj1,5}{obj2,27}{obj3,24}"

// Convert eight byte array elements to a long and display it.
let BAToInt64 bytes index =
    let value = BitConverter.ToInt64(bytes, index)

    print index (BitConverter.ToString(bytes, index, 8)) value

// Display a byte array, using multiple lines if necessary.
let writeMultiLineByteArray (bytes: byte []) =
    let rowSize = 20

    printfn "initial byte array"
    printfn "------------------"

    let mutable iter = 0
    for i in 0 .. rowSize .. (bytes.Length - rowSize - 1) do
        printfn $"{BitConverter.ToString(bytes, i, rowSize)}-"
        iter <- i
    printfn $"{BitConverter.ToString(bytes, iter + rowSize)}"

let byteArray =
    [| 0uy; 54uy; 101uy; 196uy; 255uy; 255uy; 255uy; 255uy; 0uy; 0uy
       0uy; 0uy; 0uy; 0uy; 0uy; 0uy; 128uy; 0uy; 202uy; 154uy
       59uy; 0uy; 0uy; 0uy; 0uy; 1uy; 0uy; 0uy; 0uy; 0uy
       255uy; 255uy; 255uy; 255uy; 1uy; 0uy; 0uy; 255uy; 255uy; 255uy
       255uy; 255uy; 255uy; 255uy; 127uy; 86uy; 85uy; 85uy; 85uy; 85uy
       85uy; 255uy; 255uy; 170uy; 170uy; 170uy; 170uy; 170uy; 170uy; 0uy
       0uy; 100uy; 167uy; 179uy; 182uy; 224uy; 13uy; 0uy; 0uy; 156uy
       88uy; 76uy; 73uy; 31uy; 242uy |]

printfn "This example of the BitConverter.ToInt64(byte [], int) \nmethod generates the following output. It converts elements \nof a byte array to long values.\r\n"

writeMultiLineByteArray byteArray

print "index" "array elements" "long"
print "-----" "--------------" "----"

// Convert byte array elements to long values.
BAToInt64 byteArray 8
BAToInt64 byteArray 5
BAToInt64 byteArray 34
BAToInt64 byteArray 17
BAToInt64 byteArray 0
BAToInt64 byteArray 21
BAToInt64 byteArray 26
BAToInt64 byteArray 53
BAToInt64 byteArray 45
BAToInt64 byteArray 59
BAToInt64 byteArray 67
BAToInt64 byteArray 37
BAToInt64 byteArray 9


// This example of the BitConverter.ToInt64( byte[ ], int )
// method generates the following output. It converts elements
// of a byte array to long values.
//
// initial byte array
// ------------------
// 00-36-65-C4-FF-FF-FF-FF-00-00-00-00-00-00-00-00-80-00-CA-9A-
// 3B-00-00-00-00-01-00-00-00-00-FF-FF-FF-FF-01-00-00-FF-FF-FF-
// FF-FF-FF-FF-7F-56-55-55-55-55-55-FF-FF-AA-AA-AA-AA-AA-AA-00-
// 00-64-A7-B3-B6-E0-0D-00-00-9C-58-4C-49-1F-F2
//
// index             array elements                    long
// -----             --------------                    ----
//     8    00-00-00-00-00-00-00-00                       0
//     5    FF-FF-FF-00-00-00-00-00                16777215
//    34    01-00-00-FF-FF-FF-FF-FF               -16777215
//    17    00-CA-9A-3B-00-00-00-00              1000000000
//     0    00-36-65-C4-FF-FF-FF-FF             -1000000000
//    21    00-00-00-00-01-00-00-00              4294967296
//    26    00-00-00-00-FF-FF-FF-FF             -4294967296
//    53    AA-AA-AA-AA-AA-AA-00-00         187649984473770
//    45    56-55-55-55-55-55-FF-FF        -187649984473770
//    59    00-00-64-A7-B3-B6-E0-0D     1000000000000000000
//    67    00-00-9C-58-4C-49-1F-F2    -1000000000000000000
//    37    FF-FF-FF-FF-FF-FF-FF-7F     9223372036854775807
//     9    00-00-00-00-00-00-00-80    -9223372036854775808
' Example of the BitConverter.ToInt64 method.
Module BytesToInt64Demo

    Const formatter As String = "{0,5}{1,27}{2,24}"
 
    ' Convert eight Byte array elements to a Long and display it.
    Sub BAToInt64( bytes( ) As Byte, index As Integer )

        Dim value As Long = BitConverter.ToInt64( bytes, index )

        Console.WriteLine( formatter, index, _
            BitConverter.ToString( bytes, index, 8 ), value )
    End Sub 

    ' Display a Byte array, using multiple lines if necessary.
    Sub WriteMultiLineByteArray( bytes( ) As Byte )
       
        Const rowSize As Integer = 20 
        Dim iter As Integer

        Console.WriteLine( "initial Byte array" )
        Console.WriteLine( "------------------" )

        For iter = 0 To bytes.Length - rowSize - 1 Step rowSize
            Console.Write( _
                BitConverter.ToString( bytes, iter, rowSize ) )
            Console.WriteLine( "-" )
        Next iter

        Console.WriteLine( BitConverter.ToString( bytes, iter ) )
        Console.WriteLine( )
    End Sub

    Sub Main( )
        Dim byteArray as Byte( ) = { _
              0,  54, 101, 196, 255, 255, 255, 255,   0,   0, _
              0,   0,   0,   0,   0,   0, 128,   0, 202, 154, _
             59,   0,   0,   0,   0,   1,   0,   0,   0,   0, _
            255, 255, 255, 255,   1,   0,   0, 255, 255, 255, _
            255, 255, 255, 255, 127,  86,  85,  85,  85,  85, _
             85, 255, 255, 170, 170, 170, 170, 170, 170,   0, _
              0, 100, 167, 179, 182, 224,  13,   0,   0, 156, _
             88,  76,  73,  31, 242 }

        Console.WriteLine( _
            "This example of the BitConverter.ToInt64( Byte( ), " & _
            "Integer ) " & vbCrLf & "method generates the " & _
            "following output. It converts elements " & vbCrLf & _
            "of a Byte array to Long values." & vbCrLf )

        WriteMultiLineByteArray( byteArray )

        Console.WriteLine( formatter, "index", "array elements", _
            "Long" )
        Console.WriteLine( formatter, "-----", "--------------", _
            "----" )
          
        ' Convert Byte array elements to Long values.
        BAToInt64( byteArray, 8 )
        BAToInt64( byteArray, 5 )
        BAToInt64( byteArray, 34 )
        BAToInt64( byteArray, 17 )
        BAToInt64( byteArray, 0 )
        BAToInt64( byteArray, 21 )
        BAToInt64( byteArray, 26 )
        BAToInt64( byteArray, 53 )
        BAToInt64( byteArray, 45 )
        BAToInt64( byteArray, 59 )
        BAToInt64( byteArray, 67 )
        BAToInt64( byteArray, 37 )
        BAToInt64( byteArray, 9 )
    End Sub 
End Module

' This example of the BitConverter.ToInt64( Byte( ), Integer )
' method generates the following output. It converts elements
' of a Byte array to Long values.
' 
' initial Byte array
' ------------------
' 00-36-65-C4-FF-FF-FF-FF-00-00-00-00-00-00-00-00-80-00-CA-9A-
' 3B-00-00-00-00-01-00-00-00-00-FF-FF-FF-FF-01-00-00-FF-FF-FF-
' FF-FF-FF-FF-7F-56-55-55-55-55-55-FF-FF-AA-AA-AA-AA-AA-AA-00-
' 00-64-A7-B3-B6-E0-0D-00-00-9C-58-4C-49-1F-F2
' 
' index             array elements                    Long
' -----             --------------                    ----
'     8    00-00-00-00-00-00-00-00                       0
'     5    FF-FF-FF-00-00-00-00-00                16777215
'    34    01-00-00-FF-FF-FF-FF-FF               -16777215
'    17    00-CA-9A-3B-00-00-00-00              1000000000
'     0    00-36-65-C4-FF-FF-FF-FF             -1000000000
'    21    00-00-00-00-01-00-00-00              4294967296
'    26    00-00-00-00-FF-FF-FF-FF             -4294967296
'    53    AA-AA-AA-AA-AA-AA-00-00         187649984473770
'    45    56-55-55-55-55-55-FF-FF        -187649984473770
'    59    00-00-64-A7-B3-B6-E0-0D     1000000000000000000
'    67    00-00-9C-58-4C-49-1F-F2    -1000000000000000000
'    37    FF-FF-FF-FF-FF-FF-FF-7F     9223372036854775807
'     9    00-00-00-00-00-00-00-80    -9223372036854775808

注解

该方法 ToInt64 将字节从索引 startIndex 转换为 startIndex + 7 转换为 Int64 值。 数组中的字节顺序必须反映计算机系统的体系结构的结束度。 有关详细信息,请参阅类主题的 BitConverter “备注”部分。

另请参阅

适用于