데이터 타입 변환 도구 | IEEE754 부동 소수점/16진수/10진수 변환/다중 바이트 순서(빅 엔디안/리틀 엔디안/빅 엔디안-바이트 스왑/리틀 엔디안-바이트 스왑) 지원/실시간 변환
전문 데이터 타입 변환 도구로, IEEE754 부동 소수점과 16진수/10진수 간 상호 변환을 지원하며 모든 정수 및 부동 소수점 데이터 타입(UINT16/INT16/UINT32/INT32/FLOAT32/UINT64/INT64/FLOAT64)을 포함합니다. 다양한 바이트 순서(빅 엔디안(상위 우선)/리틀 엔디안(하위 우선)/빅 엔디안-바이트 스왑(상위 우선)/리틀 엔디안-바이트 스왑(하위 우선))를 지원하며 실시간 변환 결과를 표시합니다.
변환 결과
| 데이터 타입 | ABCD (빅 엔디안) | DCBA (리틀 엔디안) | BADC | CDAB |
|---|---|---|---|---|
UINT16 16비트 부호 없는 정수 | - | - | ||
INT16 16비트 부호 있는 정수 | - | - | ||
UINT32 32비트 부호 없는 정수 | - | - | - | - |
INT32 32비트 부호 있는 정수 | - | - | - | - |
FLOAT32 32비트 부동 소수점 | - | - | - | - |
UINT64 64비트 부호 없는 정수 | - | - | - | - |
INT64 64비트 부호 있는 정수 | - | - | - | - |
FLOAT64 64비트 부동 소수점 | - | - | - | - |
사용 설명서
기능 개요
데이터 타입 변환 도구는 다양한 데이터 형식 간의 변환을 전문으로 하며, 16진수와 10진수의 상호 변환을 지원합니다. 16비트부터 64비트까지 다양한 정수형 및 부동 소수점 데이터 타입을 다룹니다. 정수형은 2의 보수(Two's Complement)로 표현되며, 부동 소수점은 IEEE-754(단정도 32비트/배정도 64비트) 인코딩을 사용하여 바이트 순서가 결과에 미치는 영향을 직관적으로 관찰할 수 있습니다.
주요 기능:
- 형식 변환: 16진수와 10진수 상호 변환 지원
- 다중 데이터 타입: 8가지 주요 데이터 타입 지원 (UINT16/INT16/UINT32/INT32/FLOAT32/UINT64/INT64/FLOAT64)
- 바이트 순서 지원: 4가지 바이트 순서 지원 (ABCD/DCBA/BADC/CDAB)으로 다양한 장비 및 레지스터 워드 순서 요구 사항 충족
- 실시간 변환: 데이터 입력 시 모든 유형의 변환 결과를 즉시 표시
사용 방법
- 1. 입력 형식 선택: 10진수 또는 16진수
- 2. 입력란에 값 입력
- 3. 아래 표에서 변환 결과 확인
- 4. 범위를 벗어나는 변환 결과는 '-'로 표시됩니다
입력 형식 설명
- 10진수 입력: 숫자 직접 입력 (예: 123, -456, 3.14)
- 16진수 입력: 16진수 문자 입력 (예: 7B, FF00, A1B2C3D4)
- 16진수 자동 서식: 입력 시 짝수 자릿수로 자동 완성 및 공백으로 구분
데이터 타입 설명
정수 타입:UINT16/INT16은 2바이트, UINT32/INT32는 4바이트, UINT64/INT64는 8바이트입니다. 부호 있는 정수는 2의 보수(Two's Complement)로 표현되며, 최상위 비트는 부호 비트입니다. 음수는 절대값에 보수를 취하여(비트 반전 + 1) 얻어지며, 표시 시 목표 비트 폭에 따라 부호가 확장됩니다.
부동 소수점 타입:FLOAT32는 4바이트 단정도(부호 1비트 + 지수 8비트 + 가수 23비트, 지수 오프셋 127), FLOAT64는 8바이트 배정도(부호 1비트 + 지수 11비트 + 가수 52비트, 지수 오프셋 1023)이며, 모두 IEEE-754 표준을 따릅니다. ±0, ±∞ 및 NaN(Not a Number)과 같은 특수 값을 지원하며, 비정규 수(Subnormal)는 매우 작은 지수로 표시됩니다.
범위 제한: 데이터 타입 범위를 벗어나는 값은 '-'로 표시됩니다
바이트 순서 설명
- ABCD: 빅 엔디안(Big Endian), 상위 바이트가 앞에 위치 (예: 일부 PLC/산업 제어 장비)
- DCBA: 리틀 엔디안(Little Endian), 하위 바이트가 앞에 위치 (예: 대부분의 x86 아키텍처)
- BADC: 바이트 스왑(16비트 단위로 AB↔BA, CD↔DC 교환), 32비트 데이터에서 두 바이트씩 교환 시 흔히 사용
- CDAB: 바이트 스왑(32비트 그룹 내에서 앞뒤 두 바이트 교환), 일부 Modbus 레지스터 워드 순서와 호환
참고: 바이트 순서(Byte Endianness)와 레지스터 워드 순서(Word Order)는 다른 개념입니다. 16비트 데이터는 ABCD와 DCBA 두 가지 배열만 의미가 있으며, 64비트 데이터는 혼동을 피하기 위해 ABCDEFGH 8바이트 예시를 참고하는 것이 좋습니다.
데이터 변환 지식
데이터 타입 변환이란?
데이터 타입 변환은 동일한 수치를 다른 표현 형식 간에 변환하는 과정으로, 다른 진수(10진수/16진수)와 다른 데이터 타입(정수형/부동 소수점형) 간의 변환을 포함합니다. Modbus/PLC/임베디드 환경에서 레지스터 값을 분석하거나 프레임을 구성할 때 흔히 사용됩니다.
IEEE-754 부동 소수점 형식 (단정도/배정도)
단정도(32비트) = 부호 1비트 + 지수 8비트(오프셋 127) + 가수 23비트. 배정도(64비트) = 부호 1비트 + 지수 11비트(오프셋 1023) + 가수 52비트. ±0, ±∞, NaN을 지원하며, 지수가 모두 0이고 가수가 0이 아닌 경우 비정규 수(Subnormal)로, 0에 가까운 매우 작은 수를 표현하는 데 사용됩니다.
2의 보수(Two's Complement)와 부호 있는 정수
보수는 절대값의 비트를 반전시킨 후 1을 더하여 얻으며, 최상위 비트는 부호 비트입니다. 16진수를 정수 타입으로 분석할 때는 비트 폭에 맞게 부호를 확장해야 합니다. 최상위 비트가 1이면 음수를 의미하며, 보수 규칙에 따라 원래 값으로 복원해야 합니다.
바이트 순서(Endianness)와 레지스터 워드 순서(Word Order)
바이트 순서는 메모리에서 바이트의 배열(ABCD/DCBA)을 제어하고, 레지스터 워드 순서는 16비트 단위 레지스터의 상위 워드와 하위 워드의 순서(예: BADC/CDAB)를 제어합니다. 이 두 가지는 종종 32/64비트 데이터의 표시 및 분석에 동시에 영향을 미치므로 장비 문서와 일치시켜야 합니다.
64비트 정수와 JavaScript 안전 정수
브라우저의 Number는 IEEE-754 배정도 부동 소수점이므로, 안전한 정수 범위는 ±(2^53-1)입니다. 이 도구는 64비트 환경에서 BigInt를 사용하여 변환 및 표시합니다. 값이 목표 타입의 범위를 벗어나거나 정밀도 위험이 있을 경우 '-'로 표시합니다.
16진수 입력의 정규화
16진수 입력은 비-16진수 문자를 자동으로 제거하고, 대문자로 통일하며, 필요한 경우 앞에 0을 붙여 짝수 자릿수를 보장합니다. 표시 시에는 가독성을 높이기 위해 두 문자마다 공백으로 구분합니다.
부동 소수점과 정수 타입 규칙
10진수 입력에 소수점이 포함되어 있고 목표 타입이 정수형일 경우 '-'로 표시됩니다. 목표 타입이 FLOAT32/FLOAT64인 경우에만 부동 소수점 변환이 수행됩니다.
흔한 오해: 엔디안과 비트 순서, NaN/Infinity 표시
엔디안은 바이트 순서에만 영향을 미치며, 바이트 내 비트 순서는 변하지 않습니다. NaN은 여러 인코딩 형식이 있지만 모두 NaN으로 표시됩니다. ±0은 IEEE-754에서 구분되지만, 수치 비교에서는 일반적으로 동일하게 취급됩니다.
적용 시나리오
- Modbus 통신 데이터 형식 변환
- PLC 데이터 타입 디버깅
- 산업 장비 파라미터 설정
- 통신 프로토콜 분석
- 데이터 수집 시스템 개발
- 장비 레지스터 값 계산
- 부동 소수점과 정수 변환
- 다중 장비 데이터 형식 호환