CodeBoost Labo

プログラミング言語だけじゃない!楽しく学べるITチャンネル!

CRとLFの違いを学ぼう!改行コードの秘密/改行コードCR/LFの違いをバイナリでチェック!

【改行コードの違い、ちゃんと理解してる?】
プログラミングやテキストファイル編集でよく出てくる「CR」と「LF」について、初心者にもわかりやすく解説します!

💡 こんなことが学べます!

CRとLFってそもそも何?
ASCIIコード表でCRとLF
OSごとに異なる改行コードの使われ方(WindowsmacOSLinux
実際にファイルを作って改行を確認してみよう!



今日は、ちょっと地味だけど大事なテーマ、『CR』と『LF』について学んでいきます! プログラミングやファイル操作で混乱しやすい改行コードの正体、しっかり解説しますよ!

CRとLFとは

『CR』は“キャリッジ・リターン”で、昔のタイプライターで言えば“行頭に戻る”動きです。
『LF』は“ライン・フィード”、つまり“1行下に送る”動き
どちらも『改行』に関わる動作なんですが、実はこの2つ、使い方がOSごとに違うんです!」

ASCIIコード表のCRとLF

ASCIIコード表を見てみましょう。
CRとLFは制御文字として、ASCIIコード体系に定められています。

ASCIIコードで、LFは16進数で0x0A
CRは16進数で0x0Dに割り当てられています。

ASCIIコード表

ASCIIコード表

プラットフォームで異なる改行


だから、同じテキストファイルでも、OSをまたいで開くと改行が崩れて見えることがあるんですね!

macOSで改行コードを確認

じゃあ実際にテキストファイルの中身がどうなっているか見てみましょう!
macOSの『テキストエディット』で作ったファイルをhexdumpコマンドで確認します。

macOSの『テキストエディット』で作ったファイルを、hexdumpコマンドで確認してみます。

テキストの例

ABC
123


macOSのhexdumpコマンドで確認

ターミナルでhexdumpコマンドを使用して確認します。
保存したテキストファイルの内容を16進数で表示してみます。

16進数の41は文字の'A'、42は'B'、43は'C'です。
そのあとに、0aが続いています。
16進数の0aは、LFで改行です。
macOSでは、改行をLFで扱います。

Windowsで改行をコード確認

続いてWindows。『メモ帳』で同じようなテキストを保存して、PowerShellで Format-Hex を使って確認してみます。

メモ帳で文字と改行を入力し保存します。

テキストの例

ABC
123


Windowsのformat-hexコマンドで確認

PowerShellのformat-hexコマンドで、保存したテキストファイルの内容を16進数で表示してみます。


16進数の41は文字の'A'、42は'B'、43は'C'です。
そのあとに、0D、0Aが続いています。
16進数の0DはCR、0AはLFです。
Windowsで改行を入力すると、ファイルにはCRとLFが保存されます。

まとめ

  • CR(0x0D):キャリッジリターン=行の先頭へ
  • LF(0x0A):ラインフィード=1行下へ
  • OSによって改行コードが違う → テキストファイルを共有するときは注意が必要!


こういう細かい違いが、意外とバグの原因になったりします。
しっかり理解しておくと安心ですね!


CRとLFの違いを学ぼう!改行コードの秘密/改行コードCR/LFの違いをバイナリでチェック!