未分類

コンピュータは0と1で動いている

投稿日:

 今日もコンピュータの仕組みについての本を読みました。コンピュータは入力・処理・出力の順番に動くのですが、他の機械と違ってなぜ複雑なことができるのでしょうか。それはコンピュータがハードウェアとソフトウェアに分かれていて、ソフトウェアを随時入れ替えることによって違うプログラムを実行することができるからです。この仕組みのおかげで様々なアプリケーションやブラウザを使うことによって音楽が聴けたり、映画を見れたり、メールができたり、ブログを書いたり、ネットサーフィンしたり、ゲームをしたり、といろいろできてしまうのですが、命令を辿れば全部0と1で表現しているのです。これは機械語と呼ばれるものでこのままでは人間が理解することはできません。命令を実行しようにも0と1でコードを書こうとしたらとてつもなく時間がかかります。なので人間がわかる言葉を0と1に変換するアセンブラというのが開発されました。この変換をすることによって人間が使う文字列でコンピュータに命令をすることができるのです。ここまでで疑問がいくつかありますのでそれをいくつか考察していきたいと思います。

そもそもなぜコンピュータは0と1しか使わないのか

 2進数ではなく10進数にすればもっと早く処理することができますし、人間も10進数を使っているので一石二鳥のような気がします。ではなぜコンピュータは二進数を活用しているのか、それはそもそもコンピュータがどのような仕組みで動いているのかを考えれば答えが出ます。コンピュータは電流が流れている時に1、流れていない時に0を表すようにできており、それが二進数に対応しています。電流の強さを変えて、それを10進数に対応させるということも考えられますが、電流にはノイズが発生するので正確に10進数に対応させることは難しいのです。コンピュータが気まぐれに表示させる値や処理を変えてしまったら困りますよね。オンとオフだとはっきりしていて確実性があるので2進数を採用しているのです。

コンピュータの世界では2進数を変換する際に10進数ではなく16進数を採用するのですが、なぜ?

 これは10進数に変換する際の処理が多くなってしまうことと、16進数の変換が容易だということで説明することができます。2進数から10進数に変換するには二進数に桁の重みをかけそれぞれのくらいを足していくことで求めることができるのですが、結構手間がかかります。一方、16進数では4桁ごとに区切って変換することができるので簡単にできてしまいます。例を出してみると、11111111を10進数に変換すると1*2の7乗 + 1*2の6乗 + 1*2の5乗 + 1*2の4乗 + 1*2の3乗 + 1*2の2乗 + 1*2の1乗 + 1*2の0乗 = 256と求めることができますが、16進数だと1111がfなのでffとなります。ちなみに2進数とか16進数とかを昔は異物だと認識しており排除思想が働いていたのですが、10進数を使っている理由がたまたま人間の指の数が10本だったことが理由(諸説あり)であることを考えれば少しおこがましくも感じてしまいます。なのですぐに意味わからんからぽいと投げ捨ててしまうのではなく、理解しようという気持ちが大事なのだと思います。

-未分類

執筆者:


  1. 天才 より:

    読みやすくなりました。
    16進数の方が変換が楽だというのは表面の常識だけをみていては中々気づかないことだと思うので新鮮ですね

comment

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です

関連記事

no image

京都行きます

友人たちと京都に行ってきます。久しぶりの旅行なのでとても楽しみです。その友人たちは中学の同級生で、いわゆる「地元メン」です。一人は保育園が同じの幼なじみのやつで、ちっこいイケメンくんです。自分はそいつ …

no image

帰りの電車で

 今日は友人と飲みに行っていたので軽く書いて終わりたいと思います。朝は本を読み、javaを少し勉強してYouTubeをみて出掛けにいきました。youtubeでは普通である感覚の分断が起きていて、そもそ …

no image

物件だらけの日

今日はひたすら物件を見ていて頭がおかしくなりそうな日でした。昨日見た問題解決の本をアウトプットします。 世界一やさしい問題解決の本 この本は自分で考えるんだ、という本です。登場人物として、どうせどうせ …

no image

文学について1

 今日は文学の日なのでそれについてに書きたいと思います。そんなに本を読む方ではないですが、寝る前は文学タイムを設けるようにしています。最近は一週間に一冊ペースくらいです。本を読むようになったきっかけは …

no image

研修辞退しました

 エンジニアになるのやめました。70万払って、転職活動もガチって、わざわざ東京に借金して乗り込んだ結果、辞退という選択をしました。これは一見クズに思われるかもしれませんが、真剣に選んだ結果なのです。な …