エクスポート (0) 印刷
すべて展開
情報
要求されたトピックは次のとおりです。しかし、このトピックはこのライブラリには含まれていません。

Int32 構造体

2013/12/12

32 ビット符号付き整数を表します。

Namespace:  System
アセンブリ:  mscorlib (mscorlib.dll 内)

public struct Int32 : IComparable, IComparable<int>, 
	IConvertible, IEquatable<int>, IFormattable

Int32 型で公開されるメンバーは以下のとおりです。

  名前説明
パブリック メソッドCompareTo(Int32)指定した 32 ビット符号付き整数とこのインスタンスを比較し、指定した 32 ビット符号付き整数と比べて、このインスタンスの値が大きいか、小さいか、同じかを示す整数を返します。
パブリック メソッドCompareTo(Object)指定されたオブジェクトとこのインスタンスを比較して、指定されたオブジェクトの値に対してこのインスタンスの値が大きいか、小さいか、等しいかを示す整数を返します。
パブリック メソッドEquals(Int32)このインスタンスが、指定した Int32 値に等しいかどうかを示す値を返します。
パブリック メソッドEquals(Object)指定されたオブジェクトとこのインスタンスが等しいかどうかを示す値を返します。 (ValueType.Equals(Object) をオーバーライドします。)
プロテクト メソッドFinalizeObject がガベージ コレクションで再利用される前に、Object がリソースを解放して他のクリーンアップ操作を実行できるようにします。 (Object から継承されます。)
パブリック メソッドGetHashCodeこのインスタンスのハッシュ コードを返します。 (ValueType.GetHashCode() をオーバーライドします。)
パブリック メソッドGetType現在のインスタンスの Type を取得します。 (Object から継承されます。)
パブリック メソッドGetTypeCodeInt32 値型の TypeCode を返します。
プロテクト メソッドMemberwiseClone現在の Object の簡易コピーを作成します。 (Object から継承されます。)
パブリック メソッド静的メンバーParse(String)数値の文字列形式を、それと等価な 32 ビット符号付き整数に変換します。
パブリック メソッド静的メンバーParse(String, NumberStyles)指定したスタイルの数値の文字列形式を、それと等価の 32 ビット符号付き整数に変換します。
パブリック メソッド静的メンバーParse(String, IFormatProvider)指定したカルチャに固有の書式による数値の文字列形式を、それと等価な 32 ビット符号付き整数に変換します。
パブリック メソッド静的メンバーParse(String, NumberStyles, IFormatProvider)指定したスタイルおよびカルチャに固有の書式による数値の文字列形式を、それと等価の 32 ビット符号付き整数に変換します。
パブリック メソッドToString()このインスタンスの数値を、それと等価の文字列形式に変換します。 (ValueType.ToString() をオーバーライドします。)
パブリック メソッドToString(IFormatProvider)指定されたカルチャ固有の書式情報を使用して、このインスタンスの数値を、それと等価の文字列形式に変換します。
パブリック メソッドToString(String)指定された書式を使用して、このインスタンスの数値を、それと等価の文字列形式に変換します。
パブリック メソッドToString(String, IFormatProvider)指定された書式およびカルチャ固有の書式情報を使用して、このインスタンスの数値を、それと等価の文字列形式に変換します。
パブリック メソッド静的メンバーTryParse(String, Int32)数値の文字列形式を、それと等価な 32 ビット符号付き整数に変換します。戻り値は、変換が成功したかどうかを示します。
パブリック メソッド静的メンバーTryParse(String, NumberStyles, IFormatProvider, Int32)指定したスタイルおよびカルチャに固有の書式による数値の文字列形式を、それと等価の 32 ビット符号付き整数に変換します。戻り値は、変換が成功したかどうかを示します。
このページのトップへ

  名前説明
パブリック フィールド静的メンバーMaxValueInt32 の最大有効値を表します。このフィールドは定数です。
パブリック フィールド静的メンバーMinValueInt32 の最小有効値を表します。このフィールドは定数です。
このページのトップへ

  名前説明
明示的なインターフェイスの実装プライベート メソッドIConvertible.ToBooleanインフラストラクチャ。 このメンバーの説明については、IConvertible.ToBoolean のトピックを参照してください。
明示的なインターフェイスの実装プライベート メソッドIConvertible.ToByteインフラストラクチャ。 このメンバーの説明については、IConvertible.ToByte のトピックを参照してください。
明示的なインターフェイスの実装プライベート メソッドIConvertible.ToCharインフラストラクチャ。 このメンバーの説明については、IConvertible.ToChar のトピックを参照してください。
明示的なインターフェイスの実装プライベート メソッドIConvertible.ToDateTimeインフラストラクチャ。 この変換はサポートされません。このメソッドを使用しようとすると、InvalidCastException がスローされます。
明示的なインターフェイスの実装プライベート メソッドIConvertible.ToDecimalインフラストラクチャ。 このメンバーの説明については、IConvertible.ToDecimal のトピックを参照してください。
明示的なインターフェイスの実装プライベート メソッドIConvertible.ToDoubleインフラストラクチャ。 このメンバーの説明については、IConvertible.ToDouble のトピックを参照してください。
明示的なインターフェイスの実装プライベート メソッドIConvertible.ToInt16インフラストラクチャ。 このメンバーの説明については、IConvertible.ToInt16 のトピックを参照してください。
明示的なインターフェイスの実装プライベート メソッドIConvertible.ToInt32インフラストラクチャ。 このメンバーの説明については、IConvertible.ToInt32 のトピックを参照してください。
明示的なインターフェイスの実装プライベート メソッドIConvertible.ToInt64インフラストラクチャ。 このメンバーの説明については、IConvertible.ToInt64 のトピックを参照してください。
明示的なインターフェイスの実装プライベート メソッドIConvertible.ToSByteインフラストラクチャ。 このメンバーの説明については、IConvertible.ToSByte のトピックを参照してください。
明示的なインターフェイスの実装プライベート メソッドIConvertible.ToSingleインフラストラクチャ。 このメンバーの説明については、IConvertible.ToSingle のトピックを参照してください。
明示的なインターフェイスの実装プライベート メソッドIConvertible.ToTypeインフラストラクチャ。 このメンバーの説明については、IConvertible.ToType のトピックを参照してください。
明示的なインターフェイスの実装プライベート メソッドIConvertible.ToUInt16インフラストラクチャ。 このメンバーの説明については、IConvertible.ToUInt16 のトピックを参照してください。
明示的なインターフェイスの実装プライベート メソッドIConvertible.ToUInt32インフラストラクチャ。 このメンバーの説明については、IConvertible.ToUInt32 のトピックを参照してください。
明示的なインターフェイスの実装プライベート メソッドIConvertible.ToUInt64インフラストラクチャ。 このメンバーの説明については、IConvertible.ToUInt64 のトピックを参照してください。
このページのトップへ

Int32 は、符号付き整数を表す不変の値型です。その整数値の範囲は、-2,147,483,648 (定数 Int32.MinValue で表される) ~ +2,147,483,647 (定数 Int32.MaxValue で表される) です。.NET Framework には、0 ~ +4,294,967,295 の範囲の値を表す符号なし 32 ビットの整数値型 UInt32 も含まれています。

Int32 値のインスタンス化

Int32 値のインスタンスを作成するには、いくつかの方法があります。

  • Int32 変数を宣言し、それに、Int32 データ型の範囲内にあるリテラル整数の値を割り当てることができます。次の使用例は、2 つの Int32 変数を宣言し、それらに、この方法で値を割り当てます。

    
    int number1 = 64301;
    int number2 = 25548612;
    
    
    
  • Int32 型のサブセットが範囲である整数型の値を割り当てることができます。これは拡大変換であり、キャスト演算子 (C# の場合) も変換メソッド (Visual Basic の場合) も必要ではありません。

    
    sbyte value1 = 124;
    short value2 = 1618;
    
    int number1 = value1;
    int number2 = value2;
    
    
    
  • Int32 型の範囲を超える範囲の数値型の値を割り当てることができます。これは縮小変換であるため、OptionStrict がオンの場合は、キャスト演算子 (C# の場合) および変換メソッド (Visual Basic の場合) が必要になります。数値が SingleDouble、または小数部を含む Decimal 値の場合は、その小数部の処理が、変換を実行するコンパイラによって異なります。次の例では、縮小変換を実行して、いくつかの数値を Int32 変数に代入しています。

    
    long lNumber = 163245617;
    try
    {
       int number1 = (int)lNumber;
       outputBlock.Text += number1 + "\n";
    }
    catch (OverflowException)
    {
       outputBlock.Text += String.Format("{0} is out of range of an Int32.", lNumber) + "\n";
    }
    
    double dbl2 = 35901.997;
    try
    {
       int number2 = (int)dbl2;
       outputBlock.Text += number2 + "\n";
    }
    catch (OverflowException)
    {
       outputBlock.Text += String.Format("{0} is out of range of an Int32.", dbl2) + "\n";
    }
    
    BigInteger bigNumber = 132451;
    try
    {
       int number3 = (int)bigNumber;
       outputBlock.Text += number3 + "\n";
    }
    catch (OverflowException)
    {
       outputBlock.Text += String.Format("{0} is out of range of an Int32.", bigNumber) + "\n";
    }
    // The example displays the following output:
    //       163245617
    //       35902
    //       132451
    
    
    
  • Convert クラスのメソッドを呼び出して、サポートされる任意の型を Int32 値に変換できます。これは、Int32IConvertible インターフェイスをサポートしているため、可能です。Decimal 値の配列の、Int32 値への変換を次の例に示します。

    
    decimal[] values= { Decimal.MinValue, -1034.23m, -12m, 0m, 147m,
                        199.55m, 9214.16m, Decimal.MaxValue };
    int result;
    
    foreach (decimal value in values)
    {
       try {
          result = Convert.ToInt32(value);
          outputBlock.Text += String.Format("Converted the {0} value '{1}' to the {2} value {3}.",
                            value.GetType().Name, value,
                            result.GetType().Name, result) + Environment.NewLine;
       }
       catch (OverflowException) {
          outputBlock.Text += String.Format("{0} is outside the range of the Int32 type.",
                            value) + Environment.NewLine;
       }   
    }                                  
    // The example displays the following output:
    //    -79228162514264337593543950335 is outside the range of the Int32 type.
    //    Converted the Decimal value '-1034.23' to the Int32 value -1034.
    //    Converted the Decimal value '-12' to the Int32 value -12.
    //    Converted the Decimal value '0' to the Int32 value 0.
    //    Converted the Decimal value '147' to the Int32 value 147.
    //    Converted the Decimal value '199.55' to the Int32 value 200.
    //    Converted the Decimal value '9214.16' to the Int32 value 9214.
    //    79228162514264337593543950335 is outside the range of the Int32 type.
    
    
    
  • Parse または TryParse メソッドを呼び出して、文字列で表現された Int32Int32 に変換できます。文字列には、10 進数または 16 進数の数字を含めることができます。次の例は、10 進数と 16 進数の文字列の両方を使用して、解析操作を示しています。

    
    string string1 = "244681";
    try
    {
       int number1 = Int32.Parse(string1);
       outputBlock.Text += number1 + "\n";
    }
    catch (OverflowException)
    {
       outputBlock.Text += String.Format("'{0}' is out of range of a 32-bit integer.", string1) + "\n";
    }
    catch (FormatException)
    {
       outputBlock.Text += String.Format("The format of '{0}' is invalid.", string1) + "\n";
    }
    
    string string2 = "F9A3C";
    try
    {
       int number2 = Int32.Parse(string2,
                                System.Globalization.NumberStyles.HexNumber);
       outputBlock.Text += number2 + "\n";
    }
    catch (OverflowException)
    {
       outputBlock.Text += String.Format("'{0}' is out of range of a 32-bit integer.", string2) + "\n";
    }
    catch (FormatException)
    {
       outputBlock.Text += String.Format("The format of '{0}' is invalid.", string2) + "\n";
    }
    // The example displays the following output:
    //       244681
    //       1022524
    
    
    

Int32 値に対する処理の実行

Int32 は、標準の算術演算 (加算、減算、除算、乗算、否定、単項否定など) をサポートしています。他の整数型と同様に、Int32 型も、ビットごとの AND 演算、OR 演算、XOR 演算、左シフト演算、右シフト演算をサポートしています。

標準の数値演算子を使用して 2 つの Int32 値を比較するか、CompareTo メソッドまたは Equals メソッドを呼び出すことができます。

文字列としての Int32 の表記

Int32 型では、標準およびカスタムの数値書式指定文字列が完全にサポートされます。

Int32 値の書式を、先行ゼロのない整数文字列として設定するには、パラメーターなしの ToString() メソッドを呼び出すことができます。"D" 書式指定子を使用すると、指定した数の先行ゼロを文字列表記に含めることができます。"N" 書式指定子を使用すると、グループ区切り記号を含めることができ、数値の文字列表記に表示される 10 進数を指定できます。"X" 書式指定子を使用すると、Int32 値を 16 進文字列として表記できます。次の例では、この 4 つの方法で、Int32 値の配列の要素を書式設定します。


int[] numbers = { -1403, 0, 169, 1483104 };
foreach (int number in numbers)
{
   // Display value using default formatting.
   outputBlock.Text += String.Format("{0,-8}  -->   ", number.ToString());
   // Display value with 3 digits and leading zeros.
   outputBlock.Text += String.Format("{0,11:D3}", number);
   // Display value with 1 decimal digit.
   outputBlock.Text += String.Format("{0,13:N1}", number);
   // Display value as hexadecimal.
   outputBlock.Text += String.Format("{0,12:X2}", number);
   // Display value with eight hexadecimal digits.
   outputBlock.Text += String.Format("{0,14:X8}", number) + "\n";
}
// The example displays the following output:
//    -1403     -->         -1403     -1,403.0    FFFFFA85      FFFFFA85
//    0         -->           000          0.0          00      00000000
//    169       -->           169        169.0          A9      000000A9
//    1483104   -->       1483104  1,483,104.0      16A160      0016A160


ToString(Int32, Int32) メソッドを呼び出して、2 番目のパラメーターとして基数を指定することによって、Int32 値をバイナリ、8 進数、10 進数、または 16 進文字列として書式設定することもできます。このメソッドを呼び出して、整数値配列のバイナリ、8 進数、および 16 進数の表記を表す例を次に示します。


int[] numbers = { -146, 11043, 2781913 };
outputBlock.Text += String.Format("{0,8}   {1,32}   {2,11}   {3,10}",
                  "Value", "Binary", "Octal", "Hex") + "\n";
foreach (int number in numbers)
{
   outputBlock.Text += String.Format("{0,8}   {1,32}   {2,11}   {3,10}",
                     number, Convert.ToString(number, 2),
                     Convert.ToString(number, 8),
                     Convert.ToString(number, 16)) + "\n";
}
// The example displays the following output:
//       Value                             Binary         Octal          Hex
//        -146   11111111111111111111111101101110   37777777556     ffffff6e
//       11043                     10101100100011         25443         2b23
//     2781913             1010100111001011011001      12471331       2a72d9


非 10 進数の 32 ビット整数型の値の操作

個々の整数を 10 進値として処理するだけでなく、整数値でのビットごとの演算、整数値のバイナリ表記または 16 進表記の処理を実行できます。Int32 値は 31 ビットで表され、32 ビット目は符号ビットとして使用されます。正の値は、符号および絶対値による表記を使用して表されます。負の値は、2 の補数で表記されます。これは、Int32 値のビットごとの演算を実行する場合や、個々のビットを操作する場合に注意が必要な重要事項です。数値、ブール型 (Boolean) の値、または 2 つの非 10 進値の比較操作を実行するには、両方の値の表記が同じである必要があります。

Windows Phone OS

サポート: 8.0, 7.1, 7.0

この型のすべてのメンバーはスレッド セーフです。インスタンスの状態を変更するように見えるメンバーは、実際には新しい値を使用して初期化された新しいインスタンスを返します。他の型と同じように、確実なスレッド セーフを実現するには、この型のインスタンスを含む共有変数の読み取りと書き込みをロックによって保護する必要があります。

表示:
© 2014 Microsoft