본문 바로가기

C#

C# 자료형 정리

C#의 주요 자료형과 그 크기 및 특징을 정리해드리겠습니다. 자료형은 크게 값 형식(Value Types)과 참조 형식(Reference Types)으로 나뉩니다.


1. 값 형식(Value Types)

정수형(Integer Types)

자료형 크기 값의 범위 설명

byte 1바이트 0 ~ 255 부호가 없는 8비트 정수
sbyte 1바이트 -128 ~ 127 부호가 있는 8비트 정수
short 2바이트 -32,768 ~ 32,767 부호가 있는 16비트 정수
ushort 2바이트 0 ~ 65,535 부호가 없는 16비트 정수
int 4바이트 -2,147,483,648 ~ 2,147,483,647 부호가 있는 32비트 정수
uint 4바이트 0 ~ 4,294,967,295 부호가 없는 32비트 정수
long 8바이트 -9,223,372,036,854,775,808 ~ 9,223,372,036,854,775,807 부호가 있는 64비트 정수
ulong 8바이트 0 ~ 18,446,744,073,709,551,615 부호가 없는 64비트 정수

부동소수점(Floating-Point Types)

자료형 크기 값의 범위 설명

float 4바이트 ±1.5 × 10⁻⁴⁵ ~ ±3.4 × 10³⁸ 단정밀도(7자리) 소수
double 8바이트 ±5.0 × 10⁻³²⁴ ~ ±1.7 × 10³⁰⁸ 배정밀도(15~16자리) 소수
decimal 16바이트 ±1.0 × 10⁻²⁸ ~ ±7.9 × 10²⁸ 고정소수점(28~29자리) 소수

Note:

  • float은 빠르지만 정밀도가 낮으며, 그래픽 등에서 주로 사용됩니다.
  • double은 일반적으로 소수 연산에 가장 많이 사용됩니다.
  • decimal은 금융 및 정확성이 요구되는 계산에 적합합니다.

논리형(Boolean Type)

자료형 크기 값의 범위 설명

bool 1바이트 true 또는 false 논리값을 나타냄

문자형(Character Type)

자료형 크기 값의 범위 설명

char 2바이트 U+0000 ~ U+FFFF (유니코드) UTF-16 문자 한 글자 표현

2. 참조 형식(Reference Types)

자료형 크기 설명

string 가변적 유니코드 문자열(문자열의 길이에 따라 크기 증가)
object 가변적 모든 자료형의 기본형

3. 기타 특수 자료형

자료형 크기 설명

IntPtr 플랫폼 의존 포인터 또는 핸들 값을 저장 (32비트 시스템: 4바이트, 64비트 시스템: 8바이트)
UIntPtr 플랫폼 의존 부호 없는 포인터 값 (IntPtr의 unsigned 버전)

크기 비교 예시

다음 코드는 C#에서 자료형 크기를 확인하는 예제입니다:

using System;

class Program
{
    static void Main()
    {
        Console.WriteLine($"Size of int: {sizeof(int)} bytes");    // 4바이트
        Console.WriteLine($"Size of double: {sizeof(double)} bytes"); // 8바이트
        Console.WriteLine($"Size of char: {sizeof(char)} bytes");  // 2바이트
    }
}

필요하면 추가적인 설명이나 활용 예제를 요청해 주세요! 😊