C#/C#_기초강의

(C#) 자료형: 정수 형식 Integral numeric types

코딩ABC 2023. 4. 20. 06:31
반응형

C#의 모든 정수 형식은 값 형식(Value Type)입니다.

 

다음은 C#의 정수 형식의 자료형입니다.

자료형 범위 크기 .NET 형식
sbyte -128 ~ 127 부호 있는 8비트 정수 System.SByte
byte 0 ~ 255 부호 없는 8비트 정수 System.Byte
short 32,768 ~ 32,767 부호 있는 16비트 정수 System.Int16
ushort 0 ~ 65,535 부호 없는 16비트 정수 System.UInt16
int –2,147,483,648 ~ 2,147,483,647 부호 있는 32비트 정수 (약 21억) System.Int32
uint 0 ~ 4,294,967,295 부호 없는 32비트 정수 System.UInt32
long 9,223,372,036,854,775,808 ~
9,223,372,036,854,775,807 (18~19 자리수)
부호 있는 64비트 정수 System.Int64
ulong 0 ~ 18,446,744,073,709,551,615 부호 없는 64비트 정수 System.UInt64
nint 플랫폼에 따라 다름(런타임에 계산됨) 부호 있는 32비트 또는 64비트 정수 System.IntPtr
nuint 플랫폼에 따라 다름(런타임에 계산됨) 부호 없는 32비트 또는 64비트 정수 System.UIntPtr

 

C#의 자료형은 .NET 형식의 별칭입니다. 자료형과 .NET 형식 이름은 서로 바꿔 사용할 수 있습니다. 예를 들어 다음 선언은 동일한 형식의 변수를 선언한 것입니다.

int a = 1234;
System.Int32 b = 1234;

 

C# 9.0부터 uint  uint 키워드를 사용하여 기본 정수를 정의할 수 있습니다. 이는 32비트 프로세서에서 실행되는 경우 32비트 정수이고, 64비트 프로세스에서 실행되는 경우는 64비트 정수입니다.

 

각 정수에는 해당 형식의 최소값을 정의하는 MinValue와 최대값을 제공하는 MaxValue 속성이 있습니다.

 

 

반응형

 

정수 리터럴

123                  10진수
0x123               16진수 (또는 0X)
0b110011          2진수    또는 (0B)

 

C# 7.0부터 지원되는 숫자 구분 기호인 _를 사용할 수 있습니다.

C#에서는 8진수 리터럴을 지원하지 않습니다(C/C++에서는 0으로 시작하면 8진수)

다음은 정수 리터럴을 사용하는 예입니다.

int a = 123;
int b = 0xFF;
int c = 0b_0100_1111;
int d = 2_147_483_647;
int e = 21_4748_3647;
int f = 0X7F_FF;

 

Long 형식에는 접미사 L 또는 l를 사용할 수 있지만 선택 사항입니다.

long a = 30_0000_0000;
long b = 30_0000_0000L;

 

예제

namespace ConsoleApp1
{
    internal class Program
    {
        static void Main(string[] args)
        {
            int a = 2147483647;
            long b = 1234567890123456789L;
            short c = 32767;
            byte d = 255;

            Console.WriteLine("{0}", a);
            Console.WriteLine("{0:N0}", b);   // 천단위마다 컴마(,), 소수점 0자리
            Console.WriteLine($"{c}");
            Console.WriteLine(d);
        }
    }
}

 

(C#) 자료형: 정수 형식 Integral numeric types

 

반응형