読者です 読者をやめる 読者になる 読者になる

文字コードの理解を深めるためにバイナリエディタでhello, worldしてみた

概要

 

表題の通り、パソコンの世界では文字は符号化され、

文字コード表に対応する符号が割り振られている。

 

そのことを体験するために、バイナリエディタで文字を書いてみる。

今回使ったバイナリエディタは有名なスターリン先生

 

文字コードはめっちゃ簡単なAsciiで、このwikiを参考に作ってみる。

ASCII - Wikipedia

 

基本

バイナリエディタでこの通りに打ってhelloworld.txtと保存し、テキストエディタで開くと、Hello, worldと表示されるはず

48 65 6C 6C 6F 2C 20 77 6F 72 6C 64

 f:id:ogontaro:20150313010258p:plain

 

 

改行を挟んでみる。

Windowsの改行コードはCRLFなので、

48 65 6C 6C 6F 2C 20 77 6F 72 6C 64 0D 0A 48 65 6C 6C 6F 2C 20 77 6F 72 6C 64

と入力してhelloworld.txtで保存してもう一度テキストエディタで開いてみると改行されていることが確認できると思う。

改行を消してみる

さらに、0Dを削除して保存してみる。

48 65 6C 6C 6F 2C 20 77 6F 72 6C 64 0A 48 65 6C 6C 6F 2C 20 77 6F 72 6C 64

すると、改行できずにHello, worldHello, worldと表示されていると思う

Unix環境がある人はこれで改行されるはず

FYI

ちなみに0x20までは制御コードと言われて、改行などの文字以外の制御のために使われる。

しかし、改行以外のコードはタイプライターなどの制御用のコードなのでめったに使用されないらしい。

 

exeなどの、バイナリデータもヘッダ部に文字が埋め込まれていることもあり、読み取ってみると面白いかもしれない。

 

以上。