IEEE 754 부동소수점 변환기(계산기)


* 음수 표현은 분모나 분자 둘 중 하나를 음수로 쓰시면 됩니다.

범위:  

도움말

사용법

  1. 범위를 먼저 설정합니다. [single (32bit|단정밀도) / double (64bit|배정밀도) / 직접설정]

     

  2. 탭을 선택 후 변환할 값을 입력합니다.

     

  3. 본문에는 2진법으로 부동소수점을 표현하는데

    만약 16진법(HEX)등 변환이 필요하다면 진법변환 계산기를 이용해보세요.

 

부동소수점 설명

부동소수점 표현은 컴퓨터에서 수를 저장하는 방법 중 하나입니다.

± (부호)는 맨 처음 0과 1로 표시하고, 1.xxxxx (가수) 와 2n (지수)의 곱으로 수를 표현하는 방법으로 이해하면 됩니다.

= 부동소수점에는 위 정보(부호 ±, 지수 n, 가수 xxxxx)가 있고, 다시 10진수로 바꿀때엔 0과 1로 이뤄진 부동소수점 수 에서 위 정보를 통해 알아낸 식을 계산하면 됩니다.

 

부동소수점 부호 지수 가수 Bias
32bit 1bit 8bit 23bit 127
64bit 1bit 11bit 52bit 1023

약속된 규칙이므로 계산하기 위해서는 미리 알아야하는 내용이 있습니다.

어디까지가 {부호, 지수, 가수}인지 알아야하고, Bias값을 알아야 계산이 가능합니다. (범위를 쉽게 외우는 방법은 아래 설명을 읽어보세요.)

 

Bias 값은 어떻게 정해지나요?

32bit 기준으로 설명을 해보자면, 지수값의 비트는 8개(숫자 범위는 0 ~ 255)로 약속되어있습니다.

Bias는 숫자 범위의 절반부터 시작해야 지수의 음수(-)범위에서 0을 포함하여 양수(+)범위까지 모두 포함시킬 수 있는데

절반은 01111111(2) = 127로, Bias는 127이 됩니다.

 

결국 지수범위만 외우면 부호는 1bit로 고정, 가수부분은 나머지가 되므로 쉽게 알 수 있고,
Bias는 지수부분의 절반! 앞자리만 0임을 알 수 있습니다.

64bit에서는 지수부가 11bit 이므로 11개중 앞자리만 0으로 쓰면 01111111111(2) = 1023 이 되는것을 알 수 있습니다.

64bit의 지수범위 11bit만 외웠는데 Bias 기본값 "1023" 과 "1bit는 부호 / 11bit는 지수 / 나머지 52bit가 가수" 임을 알 수 있습니다.

* bias값은 경우에 따라 다르게 쓸 수 있고 그런 경우에는 별도로 지정한 bias값을 안내합니다.

 

또 다른 약속

Infinity (무한대)

  • 부호: 양수는 0, 음수는 1
  • 지수: 모두 1
  • 가수: 모두 0

NaN (Not a Number: 숫자가 아니거나, 잘못됨.)

  • 지수: 모두 1
  • 가수: 0이 아닌수가 한개라도 있으면

Zero (0)

  • 부호: 양수는 0, 음수는 1
  • 지수: 모두 0
  • 가수: 모두 0

범위 초과시 "반올림"

IEEE754 표기시 가수(소수점 아래부분) 표기가능 범위(예: 32bit에서는 23)를 초과하는 경우 반올림합니다.

10진수에서 5이상을 반올림 하듯, 2진수에서는 1이상을 반올림하면 됩니다.

0.1을 32bit 부동소수점으로 변환과정에서 가수값을 보면 반올림의 의미가 이해되실겁니다.

가수값: 1001100110011001100110011001... 에서

가수값: 10011001100110011001101 반올림된 값

0.1을 2진수로 바꾸면 소수점 아래부분은 1001이 반복되는데, 단정밀도(32bit)의 가수범위는 23자리까지 표현 가능하므로, 소수점 아래 24번째 자리에서 반올림하여 표현합니다.

 

이 툴이 생긴 이유

어려운 내용이 아닌데 너무 어렵게 설명하고, 어렵게 가르치는것 같아서 이 툴을 만들고, 간단히 이해할 수 있는 설명을 넣었습니다.

 

오류제보 / 기능제안 안내사항

본문에 내용이 잘못되었거나, 설명등에 개선이 필요한 경우 아래 '오류제보/기능제안'에 글을 작성해주세요.

예시: {어디}가 {어떻게} 개선되면 좋을것 같아요

오류제보 / 기능제안   글 작성하러가기