이 항목은 아직 평가되지 않았습니다.- 이 항목 평가

Int32 구조체

2013-12-13

부호 있는 32비트 정수를 나타냅니다.

Namespace:  System
어셈블리:  mscorlib(mscorlib.dll)
public struct Int32 : IComparable, IComparable<int>, 
	IConvertible, IEquatable<int>, IFormattable

Int32 형식에서는 다음과 같은 멤버를 노출합니다.

  이름설명
Public 메서드CompareTo(Int32)이 인스턴스를 지정된 32비트 부호 있는 정수와 비교하고 이 인스턴스의 값이 지정된 32비트 부호 있는 정수보다 큰지, 같은지 또는 작은지를 나타내는 정수를 반환합니다.
Public 메서드CompareTo(Object)이 인스턴스를 지정된 개체와 비교하고 이 인스턴스의 값이 지정된 개체의 값보다 큰지, 작은지 또는 같은지를 나타내는 정수를 반환합니다.
Public 메서드Equals(Int32)이 인스턴스가 지정된 Int32 값과 같은지 여부를 나타내는 값을 반환합니다.
Public 메서드Equals(Object)이 인스턴스가 지정한 개체와 같은지 여부를 나타내는 값을 반환합니다. (ValueType.Equals(Object)을(를) 재정의함)
Protected 메서드Finalize가비지 수집기에서 Object를 회수하기 전에 개체가 리소스를 해제하고 다른 정리 작업을 수행할 수 있게 합니다. (Object에서 상속됨)
Public 메서드GetHashCode해당 인스턴스에 대한 해시 코드를 반환합니다. (ValueType.GetHashCode()을(를) 재정의함)
Public 메서드GetType현재 인스턴스의 Type을 가져옵니다. (Object에서 상속됨)
Public 메서드GetTypeCodeInt32 값 형식에 대한 TypeCode를 반환합니다.
Protected 메서드MemberwiseClone현재 Object의 단순 복사본을 만듭니다. (Object에서 상속됨)
Public 메서드정적 멤버Parse(String)숫자의 문자열 표현을 해당하는 32비트 부호 있는 정수로 변환합니다.
Public 메서드정적 멤버Parse(String, NumberStyles)지정된 스타일로 된 숫자의 문자열 표현을 해당하는 32비트 부호 있는 정수로 변환합니다.
Public 메서드정적 멤버Parse(String, IFormatProvider)지정된 문화권별 형식으로 된 숫자의 문자열 표현을 해당하는 32비트 부호 있는 정수로 변환합니다.
Public 메서드정적 멤버Parse(String, NumberStyles, IFormatProvider)지정된 스타일 및 문화권별 형식으로 된 숫자의 문자열 표현을 해당하는 32비트 부호 있는 정수로 변환합니다.
Public 메서드ToString()이 인스턴스의 숫자 값을 해당하는 문자열 표현으로 변환합니다. (ValueType.ToString()을(를) 재정의함)
Public 메서드ToString(IFormatProvider)지정된 문화권별 형식 정보를 사용하여 이 인스턴스의 숫자 값을 해당 문자열 표현으로 변환합니다.
Public 메서드ToString(String)지정된 형식을 사용하여 이 인스턴스의 숫자 값을 해당 문자열 표현으로 변환합니다.
Public 메서드ToString(String, IFormatProvider)지정된 형식 및 문화권별 형식 정보를 사용하여 이 인스턴스의 숫자 값을 해당 문자열 표현으로 변환합니다.
Public 메서드정적 멤버TryParse(String, Int32)숫자의 문자열 표현을 해당하는 32비트 부호 있는 정수로 변환합니다. 반환 값은 변환의 성공 여부를 나타냅니다.
Public 메서드정적 멤버TryParse(String, NumberStyles, IFormatProvider, Int32)지정된 스타일 및 문화권별 형식으로 된 숫자의 문자열 표현을 해당하는 32비트 부호 있는 정수로 변환합니다. 반환 값은 변환의 성공 여부를 나타냅니다.
맨 위
  이름설명
Public 필드정적 멤버MaxValueInt32의 최대값을 나타냅니다. 이 필드는 상수입니다.
Public 필드정적 멤버MinValueInt32의 최소값을 나타냅니다. 이 필드는 상수입니다.
맨 위
  이름설명
명시적 인터페이스 구현Private 메서드IConvertible.ToBoolean인프라입니다. 이 멤버에 대한 설명은 IConvertible.ToBoolean을 참조하세요.
명시적 인터페이스 구현Private 메서드IConvertible.ToByte인프라입니다. 이 멤버에 대한 설명은 IConvertible.ToByte를 참조하세요.
명시적 인터페이스 구현Private 메서드IConvertible.ToChar인프라입니다. 이 멤버에 대한 설명은 IConvertible.ToChar를 참조하세요.
명시적 인터페이스 구현Private 메서드IConvertible.ToDateTime인프라입니다. 이 변환이 지원되지 않습니다. 이 메서드를 사용하려고 하면 InvalidCastException이 발생합니다.
명시적 인터페이스 구현Private 메서드IConvertible.ToDecimal인프라입니다. 이 멤버에 대한 설명은 IConvertible.ToDecimal을 참조하세요.
명시적 인터페이스 구현Private 메서드IConvertible.ToDouble인프라입니다. 이 멤버에 대한 설명은 IConvertible.ToDouble을 참조하세요.
명시적 인터페이스 구현Private 메서드IConvertible.ToInt16인프라입니다. 이 멤버에 대한 설명은 IConvertible.ToInt16을 참조하세요.
명시적 인터페이스 구현Private 메서드IConvertible.ToInt32인프라입니다. 이 멤버에 대한 설명은 IConvertible.ToInt32를 참조하세요.
명시적 인터페이스 구현Private 메서드IConvertible.ToInt64인프라입니다. 이 멤버에 대한 설명은 IConvertible.ToInt64를 참조하세요.
명시적 인터페이스 구현Private 메서드IConvertible.ToSByte인프라입니다. 이 멤버에 대한 설명은 IConvertible.ToSByte를 참조하세요.
명시적 인터페이스 구현Private 메서드IConvertible.ToSingle인프라입니다. 이 멤버에 대한 설명은 IConvertible.ToSingle을 참조하세요.
명시적 인터페이스 구현Private 메서드IConvertible.ToType인프라입니다. 이 멤버에 대한 설명은 IConvertible.ToType를 참조하세요.
명시적 인터페이스 구현Private 메서드IConvertible.ToUInt16인프라입니다. 이 멤버에 대한 설명은 IConvertible.ToUInt16을 참조하세요.
명시적 인터페이스 구현Private 메서드IConvertible.ToUInt32인프라입니다. 이 멤버에 대한 설명은 IConvertible.ToUInt32를 참조하세요.
명시적 인터페이스 구현Private 메서드IConvertible.ToUInt64인프라입니다. 이 멤버에 대한 설명은 IConvertible.ToUInt64를 참조하세요.
맨 위

Int32는 음수 2,147,483,648(Int32.MinValue 상수로 표현)에서 양수 2,147,483,647(Int32.MaxValue 상수로 표현) 범위의 값을 가진 부호 있는 정수를 표현하는 변경할 수 없는 값 형식입니다. 또한 .NET Framework는 0에서 4,294,967,295 범위의 값을 나타내는 부호 없는 8비트 정수 값 형식 UInt32를 포함합니다.

Int32 값 인스턴스화

Int32 값을 몇 가지 방법으로 인스턴스화할 수 있습니다.

  • Int32 변수를 선언하고 Int32 데이터 형식의 범위 내에 있는 리터럴 정수 값을 할당할 수 있습니다. 다음 예제에서는 두 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에서는 변환 메서드가 필요합니다. 숫자 값이 소수 부분을 포함하는 Single, Double 또는 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 메서드를 호출하여 Int32 값의 문자열 표현을 Int32로 변환할 수 있습니다. 문자열은 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, 왼쪽 시프트, 및 오른쪽 시프트 연산자를 지원합니다.

표준 숫자 연산자를 사용하여 두 개의 Int32 값을 비교하거나 CompareTo 또는 Equals 메서드를 호출할 수도 있습니다.

Int32를 문자열로 표현

Int32 형식은 표준 및 사용자 지정 숫자 형식 문자열을 완벽하게 지원합니다.

Int32 값을 선행 0이 없는 정수 계열 문자열로 형식 지정하려면 매개 변수가 없는 ToString() 메서드를 호출할 수 있습니다. "D" 형식 지정자를 사용하여 문자열 표현에 지정된 개수의 선행 0을 포함할 수도 있습니다. "N" 형식 지정자를 사용하여 그룹 구분 기호를 포함하고 숫자의 문자열 표현을 표시할 소수 자릿수를 지정할 수 있습니다. "X" 형식 지정자를 사용하여 Int32 값을 16진 문자열로 나타낼 수 있습니다. 다음 예제에서는 이러한 네 가지 방법으로 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진수, 8진수, 10진수 또는 16진수 문자열로 Int32 값의 형식을 지정할 수도 있습니다. 다음 예제에서는 이 메서드를 사용하여 정수 값의 배열의 2진수, 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


이진수 값이 아닌 32 비트 정수 값으로 작업

10진수 값으로 개별 작업을 수행하는 것 외에도 정수 값으로 비트 연산을 수행하거나 정수 값의 2진수나 16진수 표현으로 작업할 수 있습니다. Int32 값은 부호 비트로 사용되는 32번째 비트가 있는 31비트로 표현됩니다. 양수 값은 부호 및 크기 표현을 사용하여 표현됩니다. 음수 값은 2의 보수 표현입니다. Int32 값에서 비트 연산을 수행하거나 개별 비트로 작업할 때 염두에 두는 것이 중요합니다. 숫자, 부울 또는 두 개의 십진수가 아닌 값에 대한 비교 작업을 수행하기 위해서는 두 값 모두 동일한 표현을 사용해야 합니다.

Windows Phone OS

지원되는 버전: 8.0, 7.1, 7.0

Windows Phone

이 형식의 모든 멤버는 스레드로부터 안전합니다. 인스턴스 상태를 수정하는 것처럼 보이는 멤버의 경우 실제로는 새 값으로 초기화되는 새 인스턴스를 반환합니다. 다른 모든 형식과 마찬가지로 이 형식의 인스턴스를 포함하는 공유 변수를 읽고 쓰는 작업은 스레드로부터 안전하도록 잠가서 보호해야 합니다.

이 정보가 도움이 되었습니까?
(1500자 남음)
의견을 주셔서 감사합니다.
표시:
© 2014 Microsoft. All rights reserved.