BitConverter.ToInt32 メソッド

定義

オーバーロード

名前 説明
ToInt32(ReadOnlySpan<Byte>)

読み取り専用バイト スパンを 32 ビット符号付き整数に変換します。

ToInt32(Byte[], Int32)

バイト配列内の指定した位置にある 4 バイトから変換された 32 ビット符号付き整数を返します。

ToInt32(ReadOnlySpan<Byte>)

ソース:
BitConverter.cs
ソース:
BitConverter.cs
ソース:
BitConverter.cs
ソース:
BitConverter.cs
ソース:
BitConverter.cs

読み取り専用バイト スパンを 32 ビット符号付き整数に変換します。

public:
 static int ToInt32(ReadOnlySpan<System::Byte> value);
public static int ToInt32(ReadOnlySpan<byte> value);
static member ToInt32 : ReadOnlySpan<byte> -> int
Public Shared Function ToInt32 (value As ReadOnlySpan(Of Byte)) As Integer

パラメーター

value
ReadOnlySpan<Byte>

変換するバイトを含む読み取り専用スパン。

返品

変換されたバイトを表す 32 ビット符号付き整数。

例外

valueの長さが 4 未満です。

適用対象

ToInt32(Byte[], Int32)

ソース:
BitConverter.cs
ソース:
BitConverter.cs
ソース:
BitConverter.cs
ソース:
BitConverter.cs
ソース:
BitConverter.cs

バイト配列内の指定した位置にある 4 バイトから変換された 32 ビット符号付き整数を返します。

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

パラメーター

value
Byte[]

変換する 4 バイトを含むバイトの配列。

startIndex
Int32

value内の開始位置。

返品

startIndexから始まる 4 バイトで形成された 32 ビット符号付き整数。

例外

startIndexvalue - 3 の長さ以上で、 value - 1 の長さ以下です。

valuenullです。

startIndex が 0 より小さいか、 value から 1 を引いた長さより大きい値です。

次の例では、 ToInt32 メソッドを使用して、4 バイト配列と 8 バイト配列の上位 4 バイトから Int32 値を作成します。 また、 GetBytes(Int32) メソッドと ToInt32 メソッドを使用して、 Int32 値をラウンドトリップします。

using System;

public class Example
{
   public static void Main()
   {
      // Create an Integer from a 4-byte array.
      Byte[] bytes1 = { 0xEC, 0x00, 0x00, 0x00 };
      Console.WriteLine("{0}--> 0x{1:X4} ({1:N0})", FormatBytes(bytes1),
                                      BitConverter.ToInt32(bytes1, 0));
      // Create an Integer from the upper four bytes of a byte array.
      Byte[] bytes2 = BitConverter.GetBytes(Int64.MaxValue / 2);
      Console.WriteLine("{0}--> 0x{1:X4} ({1:N0})", FormatBytes(bytes2),
                                      BitConverter.ToInt32(bytes2, 4));

      // Round-trip an integer value.
      int original = (int) Math.Pow(16, 3);
      Byte[] bytes3 = BitConverter.GetBytes(original);
      int restored = BitConverter.ToInt32(bytes3, 0);
      Console.WriteLine("0x{0:X4} ({0:N0}) --> {1} --> 0x{2:X4} ({2:N0})", original,
                        FormatBytes(bytes3), restored);
   }

   private static string FormatBytes(Byte[] bytes)
   {
       string value = "";
       foreach (var byt in bytes)
          value += string.Format("{0:X2} ", byt);

       return value;
   }
}
// The example displays the following output:
//       EC 00 00 00 --> 0x00EC (236)
//       FF FF FF FF FF FF FF 3F --> 0x3FFFFFFF (1,073,741,823)
//       0x1000 (4,096) --> 00 10 00 00  --> 0x1000 (4,096)
open System

let formatBytes (bytes: byte []) =
    bytes
    |> Array.map (fun x -> $"{x:X2}")
    |> String.concat ""

// Create an Integer from a 4-byte array.
let bytes1 = [| 0xECuy; 0x00uy; 0x00uy; 0x00uy |]
let int1  = BitConverter.ToInt32(bytes1, 0)
printfn $"{formatBytes bytes1}--> 0x{int1:X4} ({int1:N0})"

// Create an Integer from the upper four bytes of a byte array.
let bytes2 = BitConverter.GetBytes(Int64.MaxValue / 2L)
let int2 = BitConverter.ToInt32(bytes2, 4)
printfn $"{formatBytes bytes2}--> 0x{int2:X4} ({int2:N0})"

// Round-trip an integer value.
let original = pown 16 3
let bytes3 = BitConverter.GetBytes original
let restored = BitConverter.ToInt32(bytes3, 0)
printfn $"0x{original:X4} ({original:N0}) --> {formatBytes bytes3} --> 0x{restored:X4} ({restored:N0})"


// The example displays the following output:
//       EC 00 00 00 --> 0x00EC (236)
//       FF FF FF FF FF FF FF 3F --> 0x3FFFFFFF (1,073,741,823)
//       0x1000 (4,096) --> 00 10 00 00  --> 0x1000 (4,096)
Module Example
   Public Sub Main()
      ' Create an Integer from a 4-byte array.
      Dim bytes1() As Byte = { &hEC, &h00, &h00, &h00 }
      Console.WriteLine("{0}--> 0x{1:X4} ({1:N0})", FormatBytes(bytes1),
                                      BitConverter.ToInt32(bytes1, 0))
      ' Create an Integer from the upper four bytes of a byte array.
      Dim bytes2() As Byte = BitConverter.GetBytes(Int64.MaxValue \ 2)
      Console.WriteLine("{0}--> 0x{1:X4} ({1:N0})", FormatBytes(bytes2),
                                      BitConverter.ToInt32(bytes2, 4))
      
      ' Round-trip an integer value.
      Dim original As Integer = CInt(16^3)
      Dim bytes3() As Byte = BitConverter.GetBytes(original)
      Dim restored As Integer = BitConverter.ToInt32(bytes3, 0)
      Console.WriteLine("0x{0:X4} ({0:N0}) --> {1} --> 0x{2:X4} ({2:N0})", original, 
                        FormatBytes(bytes3), restored)
   End Sub
   
   Private Function FormatBytes(bytes() As Byte) As String
       Dim value As String = ""
       For Each byt In bytes
          value += String.Format("{0:X2} ", byt)
       Next
       Return value
   End Function
End Module
' The example displays the following output:
'       EC 00 00 00 --> 0x00EC (236)
'       FF FF FF FF FF FF FF 3F --> 0x3FFFFFFF (1,073,741,823)
'       0x1000 (4,096) --> 00 10 00 00  --> 0x1000 (4,096)

注釈

ToInt32 メソッドは、バイトをインデックス startIndexから startIndex + 3 にInt32値に変換します。 配列内のバイトの順序は、コンピューター システムのアーキテクチャのエンディアンを反映している必要があります。 詳細については、 BitConverterの「解説」セクションを参照してください。

こちらもご覧ください

適用対象