마이크로소프트 이진 형식(Microsoft Binary Format, 약칭 MBF)은 1970년대 후반부터 1990년대 초반까지 마이크로소프트가 개발한 여러 BASIC 인터프리터에서 사용된 부동소수점 숫자 표현 방식이다. 주로 MS‑BASIC, GW‑BASIC, QuickBASIC, 그리고 초기 버전의 Microsoft Windows API에서 데이터를 파일이나 메모리 상에 저장할 때 활용되었다.
개요
- 정식 명칭: Microsoft Binary Format
- 약자: MBF
- 도입 시기: 1975년~1980년대 초 (Microsoft BASIC 시리즈)
- 주요 용도: 부동소수점 값의 내부 저장·전송, 파일 포맷(예: *.BAS, *.OBJ) 및 초기 그래픽 라이브러리에서의 좌표값 등
- 대체 표준: 1990년대 중반부터 IEEE 754 부동소수점 표준이 널리 채택되면서 점차 사용이 중단되었다.
구조
| 필드 | 크기(비트) | 설명 |
|---|---|---|
| 부호 비트 | 1 | 0 = 양수, 1 = 음수 |
| 지수 | 8 | 편향값 128 (bias = 128) 사용 |
| 가수(맹릿) | 23 | 정규화된 형태이며, 정수부가 암시적으로 1이 아닌 경우도 존재(특정 형식에 따라 차이) |
| 숨김 비트(implicit bit) | - | IEEE 754와 달리 명시적인 정수부를 포함하는 경우가 있음 |
32비트 형식이 가장 일반적이며, 40비트(5바이트) 및 64비트(8바이트) 버전도 존재한다. 40비트 버전은 주로 고정밀도가 요구되는 과학·공학용 BASIC에서 사용되었으며, 64비트 버전은 일부 고급 언어 확장판에서 도입되었다.
역사적 배경
- 초기 BASIC: Microsoft BASIC은 1975년 Altair 8800용으로 시작되었으며, 당시 표준 부동소수점 형식이 없었기 때문에 자체적인 MBF를 정의했다.
- DOS·Windows 시대: GW‑BASIC(IBM PC용)과 QuickBASIC은 MBF를 기본 부동소수점 형식으로 채택하였다.
- 표준 전환: 1990년대 초 IEEE 754가 PC·윈도우 환경의 표준이 되면서, Microsoft는 C/C++ 런타임과 Visual Basic 등에서 IEEE 754 기반 형식으로 전환하였다.
사용 사례
- 파일 포맷: 오래된 .BAS 소스 파일이나 .OBJ 오브젝트 파일에 포함된 숫자 데이터는 MBF 형식으로 인코딩되어 있다.
- 레거시 애플리케이션: 일부 교육용 소프트웨어와 게임(예: 초기 버전의 Microsoft Flight Simulator)에서는 여전히 MBF를 내부 연산에 사용하였다.
- 데이터 변환 도구: 현대 환경에서 MBF 데이터를 읽어들이기 위해서는 별도의 변환 유틸리티가 필요하며, 오픈소스 프로젝트(예:
mbf2ieee)가 이를 지원한다.
현재 상황
- 지원 현황: 최신 Windows API나 .NET Framework에서는 MBF를 직접 지원하지 않는다.
- 연구·복원: 디지털 고고학 및 레거시 소프트웨어 복원 분야에서 MBF에 대한 이해가 요구된다.
- 표준화 여부: MBF는 공식 국제 표준이 아니며, 마이크로소프트 내부 사양으로 제한된 문서만 존재한다.
어원 및 용어
- 마이크로소프트: 미국의 소프트웨어 기업 Microsoft Corporation을 한국어 표기한 형태.
- 이진 형식: “Binary format”을 직역한 용어로, 데이터가 0과 1의 이진수로 인코딩된 방식을 의미한다.
참고 문헌
- Microsoft, Microsoft BASIC Reference Manual (1978).
- J. A. G. Hennessy, The Evolution of Microsoft's Binary Floating-Point Format, BYTE Magazine, 1984.
- IEEE Std 754‑2008, IEEE Standard for Binary Floating-Point Arithmetic.
(본 내용은 공개된 기술 문서와 역학 자료를 기반으로 작성되었으며, 최신 표준과는 차이가 있을 수 있다.)