改行コードのCRとLFの違いとは?文字コードやOSによる違いもプログラマーがわかりやすく解説
ライター/woinary
某社で社内向け業務システムの開発、運用を30年近くやっていたシステム屋さん。経験が長いため古いことに詳しい。現在はフリーランス。ガジェットやゲーム、ラノベが大好きなおっさんです。
タイプライターが起源?CRとLFの役割の違い
image by iStockphoto
パソコンのキーボードにはENTERや↩️のようなキーがあります。このキーを押すと今の行の下に新しい行が増えますよね。行を改めるので「改行」と呼びます。この改行に関係するのがCRとLFです。パソコンを使っているともしかすると聞いたことがあるかもしれません。
では改行というひとつの動作になぜCRとLFという2つのものがあるのでしょう。ざっくり言えばCRは先頭に戻ることで、LFが行送りになります。これはタイプライター由来の言葉です。ここではCRとLFの2つがなぜあるのかと、その違いを説明します。
こちらの記事もおすすめ
より便利なのは?タブレットとパソコンの違いや、失敗しない選び方などを合わせて情報端末マニアがわかりやすく解説
CR=復帰:行頭に戻ること
タイプライターを見たことある方は少ないかもしれません。筆者も現役のタイプライターは見たことがなく、レストランのインテリアとして飾ってあるものを見たくらいです。しかし、パソコンのキーボードの文字の並びなど、タイプライターの影響がそのまま残っているものも。その一つが改行です。
元々のタイプライターでは、文字を打つ部分を先頭に戻すことと、行を送ることは別物でした。その「文字を打つ部分を先頭に戻す」のがCRです。CRはCarriage Returnの略。Carriageとは馬車のこと。タイプライターの紙を載せる部分を馬車に例えたのですね。これが先頭に戻るからCarriage ReturnでCR。日本語では「復帰」と呼びます。昔のキーボードではENTERではなくRETURNと書かれたものも多いです。
LF=改行:行を進めること、必ずしも行頭には戻らない
本来の改行、つまり行を送るのがLFです。Line Feedの略で、Lineは行、Feedは餌という意味。家畜に餌を与えることもFeedと言い、そこから送ることをFeedと言います。さて、LFが改行ならば、CRは何のためにあるのでしょう。実はLFは行を進めるだけ。文字を打つ部分は動かないのです。
なぜかと言うと、タイプライターで行を進めたり戻したりするのと、文字を打つ位置を左端に戻すのは別の動作だったため。ある文字の上に別の文字を重ね打ちすることもできたのです。そのため、左端に戻すCRと行を送るLFは別になっています。
\次のページで「コンピューターで文字を扱う仕組みは?文字コードと制御文字」を解説!/