データ型変換ツール | 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(非数)などの特殊値に対応し、非正規数(Subnormal)は極めて小さい指数で表現されます。
範囲制限 データ型の範囲を超える値は「-」と表示されます
バイトオーダーの説明
- ABCD ビッグエンディアン(Big Endian)、上位バイトが先(一部のPLC/FA機器など)
- DCBA リトルエンディアン(Little Endian)、下位バイトが先(多くのx86アーキテクチャなど)
- BADC バイトスワップ(16ビット単位でAB↔BA、CD↔DCを交換)、32ビットデータで一般的な2バイトごとの交換
- CDAB バイトスワップ(32ビットを1グループとし、前後2バイトを交換)、一部のModbusレジスタのワード順に対応
注 バイトエンディアン(Byte Endianness)とレジスタワードオーダー(Word Order)は異なる概念です。16ビットデータではABCDとDCBAの2つの順序のみが意味を持ちます。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を加えることで得られ、最上位ビットが符号ビットとなります。HEXをINT型に解析する際は、ビット幅に応じて符号拡張が必要です。最上位ビットが1の場合は負数を表し、補数のルールに従って元の値に戻す必要があります。
エンディアン(Endianness)とレジスタワードオーダー(Word Order)
バイトオーダーはメモリ内でのバイトの並び順(ABCD/DCBA)を制御し、レジスタワードオーダーは16ビット単位のレジスタの上位ワードと下位ワードの順序(BADC/CDABなど)を制御します。これらは両方とも32/64ビットデータの表示と解析に影響を与えることが多く、デバイスのドキュメントと一致させる必要があります。
64ビット整数とJavaScriptの安全な整数
ブラウザのNumberはIEEE 754倍精度であり、安全な整数の範囲は±(2^53-1)です。このツールでは、64ビットのシナリオでBigIntを使用して変換と表示を行います。数値がターゲットの型範囲を超えるか、精度のリスクがある場合は、「-」で示されます。
HEX入力の正規化
HEX入力は、非16進数文字を自動的に削除し、大文字に統一し、必要に応じて先頭に0を補って偶数桁を保証します。表示時には2文字ごとにスペースで区切り、可読性を向上させます。
浮動小数点数と整数型のルール
10進数入力に小数点が含まれ、ターゲットが整数型の場合、「-」と表示されます。ターゲットがFLOAT32/FLOAT64の場合にのみ浮動小数点変換が行われます。
よくある誤解 ビッグ/リトルエンディアンとビット順、NaN/Infinityの表示
ビッグ/リトルエンディアンはバイトの順序にのみ影響し、バイト内のビット順は変わりません。NaNには複数のエンコーディング形式がありますが、表示はすべてNaNです。±0はIEEE 754で区別されますが、数値比較では通常等価です。
応用シーン
- Modbus通信データフォーマット変換
- PLCデータ型デバッグ
- 産業機器パラメータ設定
- 通信プロトコル解析
- データ収集システム開発
- デバイスレジスタ数値計算
- 浮動小数点数と整数の変換
- 複数デバイスのデータフォーマット適合