Machineboy空

C# 정수형 (Integral Number) 본문

언어/C#

C# 정수형 (Integral Number)

안녕도라 2025. 2. 3. 17:34

정수형이란?

양의 정수, 0, 음의 정수

  • 12가지의 숫자 형식 중 9가지가 정수 계열 형식
  • 각각 크기와 담을 수 있는 데이터의 범위가 다르며, 적절한 데이터 형식을 선택해 메모리를 효율적으로 사용

정수형의 종류

    크기 최소 최대
byte 부호없는 정수 1byte (8bit) 0 255
sbyte signed byte 1byte (8bit) -128 127
short 정수 2byte (16bit) -32,768 32,767
ushort unsigned short 2byte (16bit) 0 65,535
int 정수 4byte (32bit) -2,147,483,648 2,147,483,647
uint unsigned int 4byte (32bit) 0 4,294,967,295
long long integer 8byte (64bit) -9,223,372,036,854,775,808 9,223,372,036,854,775,807
ulong unsigned long 8byte (64bit) 0 18,446,744,073,709,551,615
char 유니코드 문자 2byte (16bit)    
  • 학급의 성적을 처리하는 프로그램은 int 형식 정도면 충분할 것
  • 매출이 큰 회사에서 회계를 다루는 형식으로는 long은 되어야 할 것

정수형간의 변환

  • 더 큰 데이터에 작은 데이터를 할당하는 것 = 문제 없음
  • 더 작은 데이터를 큰 데이터로 변환하고 싶을 때 : 형변환
// 큰 것에 < 작은 것 할당
uint ui = uint.MaxValue;
ulong ul = ui;

// 작은 것 > 큰 것으로 변환하고 싶을 때
short s = 42;
uint ui = (uint)s;

부동 소수점 형식(Floating Point type)

소수점이 고정되어 있지 않고 움직이면서 수를 표현한다.

  • 소수점을 이동해 수를 표현하면 고정했을 때보다 더 제한된 비트를 이용해서 훨씬 넓은 범위의 값을 표현할 수 있기 때문
  • 3.14, 11.08 등과 같은 소수
  • 소수점을 표현하기 위해 일부 비트를 사용하기 때문에(게다가 부호도 표현해야 한다) 같은 크기의 정수 계열 형식과 같은 크기의 수를 표현할 수 없다.
  • 산술 연산 과정이 정수 계열 형식보다 복잡해서 느리다.
  • float, double

IEEE754

 C#의 float과 double은 IEEE754라는 표준 알고리즘에 기반한 데이터 형식

  • 4byte(32bit)의 float형식의 수를 표현할 때
    • 1 bit : 부호 전용
    • 23 bit: 기수부: 수를 표현
    • 8bit: 지수부: 소수점의 위치 표현

 

'언어 > C#' 카테고리의 다른 글

C# Dictionary 딕셔너리  (0) 2025.02.06
C# 문자 형식 char, 문자열 형식 string, String Builder  (0) 2025.02.06
C# 상속, 다형성(Polymolphism)  (0) 2025.02.03
C# Generic Types  (0) 2025.01.24
LINQ  (0) 2025.01.23