정수와 실수의 데이터 표현 방법

Yuno·2025년 4월 4일
0

✅ 정수 (Integer)

정수는 부호화 2의 보수 방식으로 표현

  • 부호 비트(MSB)
    • 0: 양수, 1: 음수
  • 2의 보수 : 1의 보수에서 1을 더한 값으로 음수를 표현

예시: 숫자 17 표현 방법

  • 양수 + 17 (2진수): 0001 0001
  • 음수 -17 표현법
    • 먼저 1의 보수를 만듬 : 1110 1110
    • 여기에 1을 더함 : 1110 1110 + 1 = 1110 1111
    • 따라서 1110 1111 → -17(2의 보수 표현)

❓ 2의 보수를 쓰는 이유는?

  • 1의 보수는 +0 과 -0 이 있어 불편했기 때문
  • 2의 보수는 0이 하나뿐이라 명확하고 편리함

✅ 실수 (Floating point)

실수는 부동 소수점(Floating point) 방식으로 표현

  • 기본 형태
(부호) 1.가수 x 2^(지수)
  • IEEE 754 표준을 사용
    • 32비트: (부호 1비트, 지수 8비트, 가수 23비트)

예시: 숫자 -10010.011 표현 방법

1) 부호: 음수니까 1
2) 정규화(1.xxx 형태로):
   10010.011(2진수)1.0010011 x 23) 지수(Exponent): 4에다가 127을 더한 값 → 131 (2진수: 10000011) 
4) 가수(Mantissa): 소수점 뒤 '0010011'(23비트로 만듬)

이렇게 표현된 값이 부동 소수점 방식(IEEE 754)

❓ 지수에 127을 더하는 이유는?

  • 지수가 음수일 때 복잡한 표현을 피하기 위해
  • 지수에 127을 더하여 음수 지수를 0 이상의 수로 표현하기 쉽게 함
구분부호 (1비트)지수 (8비트)가수 (23비트)
내용양수(0) / 음수(1)지수 + 127소수점 이하
profile
Hello World

0개의 댓글