create every day - 福野泰介の一日一創

パンチカードとアスキーコード コンピューターと近づく指二進数

2015/02/12 23:55:00
#IchigoJam #KidsIT 

IchigoJamで辿るコンピューターの歴史。文字はすべて数と紹介した入門その9、どの文字をどの数に割り当てるかはコンピューターをつくる人の自由。AからZまで順番に並んでいる必要はないし、どの数から始めたっていい。

その並びに特別な意味を持たせるつもりがなければ、できるだけ普通に使われている体系に合わせておく方のが利用者思い。IchigoJamでも一般的に使われているASCII(アスキー)という文字コードをベースにしている。'A'は65で、'0'は48。

Wikipediaを読んだ発見、2つ

1. アルファベットの大文字小文字は、6bit目で決まる。無視すれば両対応、1にすれば小文字に!
2. DELETEが127(2進数で1111111)なのは、パンチカードですべて穴を空けて消すためだった!

すべてを数にするコンピューター、正確にはすべて2進数にしています。2進数とは、0と1など、2つの記号を使って数を表す方法で、1+1=10になる(体感するには二進数そろばん、solobin(そろびん)をどうぞ)。RAMは電気を貯めているかいないかで、HDDは磁気があるかないか、パンチカードは紙に穴があいているかどうかで、0と1を表しています。この1つを単位bit(ビット)を使って、1bit。この、あるかないかというシンプルな表現がほぼ完璧に計算をこなすコンピューターの強さの秘密!


(ASCIIコード体験プログラム)

こちらは、IchigoJamでASCIIコードを体験するプログラム。いろんな文字の2進数表現が分かります。プログラム内にでてくるコマンド'<<'は、数を大きい方にビットをシフトする上級者向けコマンド。?1 ?1<<1 ?1<<2 など、いろいろ試してみてください。


(指二進数で10を表しています。右から読むか左から読むかは自由)

一番身近な2進数記憶は、手の指。2進数を使えば片手で31まで数えられます。両手を使うとどこまで数えられるでしょうか?片手で2進数で63まで表すにはどうしたらいいでしょうか?アスキーコードを使って自分の名前を表してみましょう。指で通信もできちゃいますね!

8,000円で買える1TB(テラバイト、テラ=1兆、1byte=8bit)のHDD、実に指が8兆本分、人間の数にして8,000億人分。1円で1億人分の指が買える計算です。

Tweet
クリエイティブ・コモンズ・ライセンス
この作品は「Creative Commons — CC BY 4.0」の下に提供されています。
CC BY 福野泰介 - Taisuke Fukuno / @taisukef / high-res profile image