BitConverter.ToInt64 方法   
定义
重要
一些信息与预发行产品相关,相应产品在发行之前可能会进行重大修改。 对于此处提供的信息,Microsoft 不作任何明示或暗示的担保。
重载
| 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> -> int64Public Shared Function ToInt64 (value As ReadOnlySpan(Of Byte)) As Long参数
- value
- ReadOnlySpan<Byte>
包含要转换的字节的只读范围。
返回
表示已转换字节的 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 -> int64Public Shared Function ToInt64 (value As Byte(), startIndex As Integer) As Long参数
- value
- Byte[]
包含要转换的八个字节的字节数组。
- startIndex
- Int32
value 内的起始位置。
返回
由八个字节构成、从 startIndex 开始的 64 位有符号整数。
例外
startIndex 大于等于 value 减 7 的长度,且小于等于 value 减 1 的长度。
value 为 null。
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 “备注”部分。