1. 데이터 형식 개요

  • 참조 형식: 문자열(string), 오브젝트(object) 형식으로 구분.
  • 값 형식: 숫자 형식, 논리 형식으로 구분.
    • 숫자 형식: 정수 계열, 부동소수점 계열, 소수 계열로 세분화.

2. 정수 계열

정수 데이터를 다루기 위한 형식이며, 크기와 범위가 다릅니다.
효율적인 메모리 사용을 위해 데이터 범위에 맞는 형식을 선택해야 합니다.

데이터 형식설명크기(Byte)범위

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

양수와 음수 표현: 최상위 비트를 이용하여 0(양수), 1(음수)로 구분.
음수 표현: 2의 보수법

  1. 비트를 반전.
  2. 1을 더함.

예시: -3

  • 00000011 → 비트 반전 → 11111100 → 1 추가 → 11111101

3. 오버플로우와 언더플로우

  • 오버플로우: 데이터가 최대값을 넘으면 0으로 순환.
  • 언더플로우: 데이터가 최소값을 넘으면 최대값으로 순환.
csharp
코드 복사
byte a = 255; a++; // 0

4. 부동소수점 계열

유리수와 실수를 표현하는 데이터 형식.
정수 계열보다 표현 범위가 넓지만 정확도 손실이 있을 수 있음.

데이터 형식설명크기(Byte)범위

float 단일 정밀도 부동소수점 (7자리) 4 ±3.402823e38
double 복수 정밀도 부동소수점 (15~16자리) 8 ±1.79769313486232e308
decimal 29자리 고정소수점 16 매우 정밀한 소수값 표현

 


5. 논리 형식 계열

참과 거짓을 표현.

데이터 형식설명크기(Byte)범위

bool 논리 값 1 true, false

6. 문자와 문자열 형식

  • 문자(char): 단일 문자, 작은 따옴표 사용.
char c = 'A';
  • 문자열(string): 여러 문자의 집합, 큰따옴표 사용.
string s = "Hello";

7. Object 형식

  • 모든 데이터 형식의 조상.
  • 참조 형식이며, 힙(Heap)에 데이터를 저장.

8. 박싱(Boxing)과 언박싱(Unboxing)

  • 박싱: 값 형식 → 참조 형식(object)로 변환.
int a = 20; 
object o = a; // 박싱
  • 언박싱: 참조 형식(object) → 값 형식으로 변환.
object o = 20; 
int a = (int)o; // 언박싱

9. 데이터 크기

  • bit: 0과 1을 표현하는 최소 단위.
  • 니블: 4비트.
  • 바이트(byte): 8비트.
  • 워드(word): CPU의 데이터 처리 단위(16비트 이상).

10. 데이터 구조

  • 필드: 데이터베이스의 열(Column).
  • 레코드: 데이터베이스의 행(Row).
  • 파일: 레코드의 집합.
  • 데이터베이스: 파일의 집합.

1. ASCII (American Standard Code for Information Interchange)

  • 정의:
    컴퓨터에서 문자를 표현하기 위한 초기 표준 문자 인코딩 방식.
    영어 알파벳, 숫자, 기호 등 총 128개(7비트) 또는 256개(8비트)의 문자 정의.
  • 특징:
    • 7비트 데이터 비트와 1비트 패리티 비트 사용.
    • 128개 문자는 기본 문자(영어, 숫자, 특수 기호) 포함.
    • 제한점:
      • 영어 외의 다른 언어 지원이 부족.
      • 다국어를 포함하는 대규모 문자 집합에 비효율적.
  • 사용 사례:
    • 초기 컴퓨터 시스템과 텍스트 파일.
    • 프로그래밍 언어에서 기본 문자 세트.

2. Binary (바이너리, 2진수)

  • 정의:
    0과 1 두 개의 숫자만으로 데이터를 표현하는 방법. 컴퓨터 데이터 표현의 기본.
  • 특징:
    • 컴퓨터 내부의 모든 데이터는 바이너리로 처리.
    • 비트(bit) 단위로 표현.
    • 장점:
      • 하드웨어와의 직접적인 호환성.
      • 효율적인 데이터 표현.
    • :
      • 10진수 5를 바이너리로 표현하면 101.
  • 사용 사례:
    • 모든 컴퓨터의 기본 데이터 표현 방식.
    • 파일 저장 및 전송.

3. UTF-8

  • 정의:
    유니코드(UNICODE)를 기반으로 한 가변 길이 문자 인코딩 방식.
    최소 1바이트에서 최대 4바이트까지 사용.
  • 특징:
    • ASCII와 호환:
      ASCII 문자(영어)는 1바이트만 사용.
    • 가변 길이:
      문자에 따라 1~4바이트 사용.
      • 1바이트: 영어, 숫자.
      • 2바이트: 유럽 및 중동 언어.
      • 3바이트 이상: 한중일 문자(한국어, 중국어, 일본어).
    • 장점:
      • 다국어 지원.
      • ASCII와의 하위 호환성.
    • 단점:
      • 3바이트 이상 문자(한중일 언어 등)는 비효율적.
  • 사용 사례:
    • 웹 환경에서 널리 사용되는 인코딩 방식.
    • JSON, XML 같은 다국어 데이터 형식.

4. UNICODE

  • 정의:
    전 세계의 모든 문자를 일관되게 표현하기 위해 만들어진 표준.
    모든 문자를 **고유 번호(코드 포인트)**로 매핑.
  • 특징:
    • 유니코드 자체는 인코딩 방식이 아님.
    • 유니코드를 표현하기 위한 다양한 인코딩 방식 존재:
      • UTF-8: 가변 길이.
      • UTF-16: 2~4바이트.
      • UTF-32: 고정 4바이트.
    • 최대 1,114,112개의 문자 지원.
  • 장점:
    • 다국어 지원에 최적화.
    • 일관된 문자 표현 가능.
  • 단점:
    • ASCII보다 메모리 사용량 증가.
  • 사용 사례:
    • 현대 컴퓨터 시스템에서 표준 문자 집합.
    • 국제화 및 다국어 지원 애플리케이션.

5. Default

  • 정의:
    기본값으로, 초기 설정된 값 또는 시스템이 제공하는 값.
  • 특징:
    • 메모리 관리와 관련된 프로그래밍 맥락에서 자주 사용.
    • 지역 변수와 매개변수:
      • 함수 내에서 선언된 지역 변수는 함수 종료 시 메모리에서 소멸.
      • 메인 함수 외의 변수는 기본적으로 초기화되지 않음.
  • 사용 사례:
    • 디폴트 설정: 초기화되지 않은 변수에 대한 값.
    • 프로그래밍: 기본 인코딩 방식(예: UTF-8), 기본 메모리 할당.

비교 표

항목ASCIIBinaryUTF-8UNICODEDefault

정의 문자 인코딩 데이터 표현 방식 유니코드 기반 가변 길이 인코딩 전 세계 문자 매핑 방식 초기값, 기본 설정
용량 7비트 또는 8비트 비트 단위 1~4바이트 2바이트 이상 시스템에 따라 다름
언어 지원 영어 중심 모든 데이터 전 세계 문자 전 세계 문자 언어와 무관
사용 사례 초기 컴퓨터 시스템 컴퓨터 내부 데이터 표현 웹 환경, 다국어 문서 국제화 애플리케이션 초기화 변수, 기본값
장점 간단함, 효율적 하드웨어 친화적 ASCII와 호환, 다국어 지원 일관된 문자 표현 프로그래밍의 기본값 제공
단점 다국어 지원 부족 인간 가독성 낮음 한중일 문자 비효율적 메모리 사용량 증가 한정적 맥락에서만 의미 있음

요약

  • ASCII: 초기 문자 인코딩 방식, 영어 중심.
  • Binary: 컴퓨터에서 데이터를 표현하는 기본 방식.
  • UTF-8: 다국어 지원에 적합한 유니코드 기반 인코딩.
  • UNICODE: 모든 문자를 일관되게 매핑하는 표준.
  • Default: 기본적으로 설정된 값으로, 초기 상태를 정의.

+ Recent posts