IBM 16진 부동소수점

개요
IBM 16진 부동소수점(Hexadecimal floating‑point)은 IBM이 1960년대 System/360·370 시리즈에서 도입한 부동소수점 표현 방식이다. 이 형식은 2진수가 아닌 16진수를 기반으로 하여, 지수부는 16진수(베이스 16)로, 가수부는 정규화된 16진수 형태로 저장한다. 일반적으로 32비트(single), 64비트(double), 128비트(extended) 등의 정밀도별 형식이 정의되어 있다.

구조

비트 수 구성 요소 설명
1 부호 비트 0 = 양수, 1 = 음수
7 (32비트형) / 7~8 (다른 형식) 지수부 16진수 지수, 편향(bias) 값은 64(= 0x40)
24 (32비트형) / 56 (64비트형) / 112 (128비트형) 가수부 정규화된 16진수 가수(숨겨진 4비트 ‘1’은 명시되지 않음)

예시 – 32비트 형식에서 가수는 6자리(24비트) 16진수이며, 가장 높은 4비트는 항상 ‘1’(정규화)로 가정한다. 따라서 실제 저장되는 가수는 앞선 ‘1’을 제외한 나머지 비트만을 포함한다.

역사 및 사용

  • 도입: 1964년 IBM System/360에서 최초로 채택되었으며, 이후 System/370, ESA/390, z/Architecture 등 IBM 메인프레임 시스템에 지속적으로 사용되었다.
  • 표준화: IBM의 부동소수점 형식은 IEEE 754가 제정되기 전까지 업계 표준으로 널리 인정받았다.
  • 언어 지원: Fortran, PL/I, COBOL 등 IBM 메인프레임용 고급 언어 컴파일러가 기본적으로 이 형식을 지원하였다.
  • 전환: 1990년대 이후 IBM은 IEEE 754 표준(이진 부동소수점)으로 점차 이전했으며, 최신 메인프레임 및 서버에서는 주로 IEEE 형식을 사용한다. 그러나 레거시 애플리케이션 및 데이터베이스에서는 아직도 IBM 16진 부동소수점 형식이 존재한다.

특징 및 한계

  • 정밀도: 16진수 기반이므로 동일 비트 수의 IEEE 754 이진 부동소수점에 비해 상대적으로 낮은 정밀도를 가진다. 예를 들어 32비트 IBM 형식은 6자리(24비트) 16진수 가수를 갖지만, IEEE 754 single(32비트)와 비교하면 유효숫자 자리수가 비슷함에도 불구하고 표현 가능한 실수의 분포가 다르다.
  • 범위: 16진수 지수 덕분에 매우 큰 혹은 작은 수를 표현할 수 있지만, 지수와 가수의 조합이 제한적이어서 특정 구간에서 밀도가 낮다.
  • 호환성: 현대 시스템과의 데이터 교환 시 변환 과정이 필요하며, 변환 시 반올림 오차가 발생할 수 있다.

관련 표준 및 문서

  • IBM System/360 Principles of Operation (GA22-6821)
  • IBM System/370 Principles of Operation (GA22-7000)
  • IBM z/Architecture Principles of Operation (SA22-7832)

현황
현재 IBM 메인프레임 및 일부 레거시 시스템에서는 여전히 IBM 16진 부동소수점 형식이 사용되지만, 신규 소프트웨어 개발에서는 IEEE 754 형식이 권장된다. 데이터 마이그레이션 및 호환성을 위해 변환 도구와 라이브러리가 제공된다.

둘러보기

더 찾아볼 만한 주제