.HEX

HEX ファイル

Intel HEX File
質問する
クイック回答

.hexファイルはIntel HEXファイルです。Arduino、AVR、PICチップなどのマイコン用にコンパイルされたファームウェアが、プレーンテキストのレコードとして保存されています。PC上で実行するものではなく、Arduino IDE、avrdude、またはベンダーの書き込みツールを使用してデバイスに「フラッシュ(書き込み)」します。内容を確認するだけであれば、任意のテキストエディタで開くことができ、コロンで始まる行が表示されます。

開発元: Intel カテゴリ: 開発用ファイル オープンスタンダード MIME: text/plain
対応OS Windows macOS Linux
関連: .DO · .MD · .XSD · .MAP

このページの内容

19k+ 個の拡張子を索引済み
最終確認日:Aug 30, 2026

ファイルの種類がわかりませんか?

ファイルを識別ツールにドロップしてください。最初の数バイトを読み取って形式を特定します。

ファイルを識別する

HEX ファイル形式とは?

拡張子 .hex を持つファイルは、Intel HEX形式を使用しています。これは、コンパイルされたバイナリファームウェアをエンコードし、プログラマや書き込みツールに確実に転送できるようにするためのプレーンテキストのASCIIレコード形式です。生のバイナリデータを保存するのではなく、すべてのバイトが2つの16進文字として表現されるため、どのテキストエディタでも人間が読める状態が保たれます。

.hex ファイルは常にプレーンテキストであり、メモ帳などの標準的なテキストエディタで開くことができます。ファームウェアをマイコンに書き込むには、avrdude や Arduino IDE などの専用ツールが使用されます。生のマシンコードが必要な場合は、コンパイラから バイナリ .bin イメージや、その形式を好むシステム向けに Motorola S-record .srec を出力することも可能です。

.hex ファイルは、コンパイラやアセンブラがソースコードをマシンコードに変換し、ターゲットデバイスへ安全に転送するためにエンコードした結果です。

.hex ファイルが使用される場所

.hex ファイルに含まれるデータは、マイコンのプログラミングや、EEPROMやフラッシュストレージなどの組み込みメモリへの内容の書き込みに使用されます。マイコンは、リモコンや自動車のエンジン制御システムから、最新のIoTセンサやロボットハードウェアまで、多くの一般的なデバイスに搭載されています。

.hex ファイルのデータ構造

.hex ファイル内の16進データは「レコード」と呼ばれるテキスト行に保存されており、各レコードは6つのフィールドで構成されています。

  • スタートコード - すべてのレコードの始まりを示すコロン (:)
  • バイト数 - そのレコード内のデータバイト数を定義する2桁の16進数
  • アドレス - 16ビットの転送先アドレスを指定する4桁の16進数(基本形式ではセグメントあたり最大64 KBまで)
  • レコードタイプ - 00 から 05 までの2桁の16進数(例: 00 = データレコード、01 = ファイル終端)
  • データ - 実際のペイロード。各バイトは2つの16進文字としてエンコードされます
  • チェックサム - レコード内の先行するすべてのバイトの2の補数チェックサムを保持する2桁の16進数

有効なすべてのIntel HEXファイルの最終行は、固定されたファイル終端レコード :00000001FF です。

セキュリティと安全性

リスク: MEDIUM

.hexファイルはプレーンなデータであり、それ自体がPC上で実行されることはないため、テキストエディタやバイナリエディタで開くことは無害です。本当のリスクはデバイス側にあります。信頼できないファームウェアを書き込むと、ハードウェアが「文鎮化」したり、マイコンに悪意のあるコードがロードされたりする可能性があります。デバイスベンダーや信頼できるソースからの.hexファイルのみを書き込み、アップロード前にファイルが使用しているボードやチップと正確に一致することを確認してください。手動でファームウェアのバイトを編集すると、イメージが破損する可能性もあります。

形式の詳細

概要
正式名称Intel HEX File
開発元Intel登場時期 1973 (Intel HEX format)
MIME タイプtext/plain
タイプマイコン用のコンパイル済みバイナリファームウェアを保持するプレーンテキストASCIIレコード形式
標準規格オープン・ロイヤリティフリー
この拡張子は以下でも使用されています…
  • 一般的なヘックスダンプ

HEX ファイルを開くプログラム

Windows4 apps
Notepad オープンソース .hexを開いて、Intel HEXレコードをテキストとして読み取ります(「:」で始まる行)。
Arduino IDE オープンソース ファームウェア用:スケッチ > 書込装置を使って書き込む、または同梱のavrdudeを使用して.hexをボードに書き込みます。
XLoader / avrdude 無料 XLoader(シンプルなavrdudeのGUI)で.hexを指定し、ボードとポートを選択して「Upload」をクリックして書き込みます。
HxD (hex editor) 無料 無料のWindows用バイナリエディタ。HEX→BIN変換後の生のバイナリを検査するのに便利です(開発終了したXVI32やFlexHexよりも推奨されます)。
macOS3 apps
TextEdit 標準搭載 .hexをプレーンテキストとして開き、Intel HEXレコードを読み取ります(フォーマット > 標準テキストにする)。
Arduino IDE オープンソース ファームウェア用:スケッチ > 書込装置を使って書き込む、または同梱のavrdudeを使用して.hexをボードに書き込みます。
Hex Fiend オープンソース 高速で無料のmacOS用バイナリエディタ。変換されたファームウェアイメージの生のバイトを検査・編集します(古い有料のHexEditの代替)。
Linux2 apps
avrdude オープンソース ファームウェアの書き込み:avrdude -p <mcu> -c <programmer> -U flash:w:firmware.hex
GHex / gedit オープンソース GHexは生のバイトを検査・編集します。gedit(または任意のエディタ)はIntel HEXレコードをプレーンテキストとして開きます。

技術的詳細

詳細仕様
エンコーディング純粋なASCIIテキスト。すべてのデータバイトは2つの16進文字で表現されます
レコード開始文字コロン `:` (0x3A) - すべてのレコード行はこの文字で始まります。バイナリのマジックナンバーはありません
レコードタイプ00〜05の6つのタイプ:データ (00)、ファイル終端 (01)、拡張セグメントアドレス (02)、開始セグメントアドレス (03)、拡張リニアアドレス (04)、開始リニアアドレス (05)
基本アドレス範囲セグメントあたり16ビットのアドレス指定。アドレス拡張レコードなしで最大64 KBをカバー
拡張アドレス範囲タイプ04の拡張リニアアドレスレコードを使用して最大4 GB (32ビット) まで対応し、完全な32ビットメモリマッピングが可能
レコードあたりの最大データバイト数1レコードあたり最大255バイト (0xFF)。一般的には1レコードあたり16または32バイトが使用されます
チェックサムアルゴリズム開始のコロンを除く、レコード内のすべてのバイト(バイト数、アドレス、レコードタイプ、データ)の8ビットの2の補数
ファイル終端マーカー固定レコード `:00000001FF` が、すべての有効なIntel HEXファイルを終了させる必要があります
MIMEタイプtext/plain
アドレスのバイト順序ビッグエンディアン - アドレスおよびマルチバイトのカウントフィールドでは最上位バイトが先
主な用途AVR、PIC、ARM Cortex-M、8051ファミリーなどのマイコン上のフラッシュおよびEEPROMのプログラミング
ツールチェーンの起源avr-gcc、MPLAB X IDE、Keil MDK、IAR Embedded Workbenchなどのコンパイラおよびアセンブラの出力
ファイルサイズのオーバーヘッド生のバイナリサイズの約1.4〜2倍。各データバイトが2つのASCII文字になり、レコードごとのフレーミングバイトが加わるため
リリース日1973 (Intel HEX format)
オープンスタンダードはい · ロイヤリティフリー
仕様書en.wikipedia.org

HEX の変換

コミュニティ Q&A

ユーザーからの質問
質問する
HEX ファイルを扱うユーザーからヘルプを得られます。OSやソフトウェアのバージョンなど、具体的に記載してください。
アカウント不要 ・ 通常1日以内に回答されます

まだ質問はありません。HEX ファイルについて最初の質問をしてみましょう。

よくある質問

.hexファイルを開くプログラムは何ですか?
内容を読むには、Intel HEXはプレーンテキストであるため、任意のテキストエディタ(メモ帳、Notepad++、VS Code)が機能します。デバイスにファームウェアを書き込むには、Arduino IDE、avrdude、またはベンダーの書き込みツールを使用します。変換後に生のバイトを確認するには、HxDやHex Fiendなどのバイナリエディタを使用します。
.hexファイルはファームウェアですか?
通常はそうです。Intel HEX形式は、マイコン(Arduino/AVR/PIC/ARM)用にコンパイルされた、書き込み準備が整ったファームウェアです。コロンで始まるレコード行がその特徴です。
Arduinoに.hexファイルを書き込むにはどうすればよいですか?
Arduino IDE(スケッチ > 書込装置を使って書き込む)を使用するか、avrdudeを直接実行します:avrdude -p <mcu> -c <programmer> -U flash:w:firmware.hex。事前に正しいボードとシリアルポートを選択してください。
.hexファイルを.binに変換するにはどうすればよいですか?
avr-objcopy -I ihex -O binary in.hex out.bin を使用するか、SRecordツールキットを使用します。これにより、Intel HEXのASCIIフレーミングが取り除かれ、生のファームウェアイメージが生成されます。
メモ帳で.hexファイルを開けますか?
はい。Intel HEXはテキストなので、「:」で始まるレコードの行が表示されます。メモ帳で読むことはできますが、書き込みはできません。デバイスへのアップロードには、Arduino IDEやavrdudeが必要です。
なぜ.hexファイルはファームウェアよりもサイズが大きいのですか?
Intel HEXは各バイトを2つのASCII文字として保存し、さらにアドレスやチェックサムのフレーミングが加わるため、テキストファイルのサイズは元のバイナリデータの約2〜3倍になります。

参考文献

1Intel HEX format (Wikipedia / spec overview)en.wikipedia.org
2avrdude - firmware programmer documentationgithub.com

さらに探索

データベース全体から

今週のトップ拡張子

1.AQQAQQ Instant Messenger File
2.CRDOWNLOADChrome Partial Download File
3.MDMarkdown Document
4.BINCD/DVD Disc Image (BIN/CUE)
5.PARTPartial Download File
6.BCBitComet Incomplete Download File
7.EXEWindows Executable (Portable Executable)
8.NOMEDIAAndroid No-Media Marker File
9.AVIFAV1 Image File Format (AVIF)
10.RPMSGRestricted Permission Message

関連する拡張子

.DOStata Do-File
.MDMarkdown Document
.XSDXML Schema Definition
.MAPSource Map (JavaScript / CSS)
.CONFIGConfiguration File
.NUPKGNuGet Package

無料ファイルツール

ブラウザで動作するファイル識別および画像変換ツール。すべてお使いのデバイス上で実行されます。

ツールボックスを開く

ファイル拡張子を A-Z で閲覧