第36話 量子ビット(ビットについて)


■ビットとコンピュータ
コンピュータによる計算の根幹はビットと呼ばれる単位操作して計算が行われています。とても単純な演算機能を組み合わせて次第に複雑な演算機能をを組み上げているわけです。では、ビットとはどんなものでしょうか?

2007年、この2007という数字は10進数と呼ばれるています。誰でも知っているごく普通に使っている数字ですね。でも10進数とか言われると?ですかね。

簡単に言えば0,1,2,3,4,5,6,7,8,9 という10未満の数でどんな数でも表記できるという意味です。(当然の事を言っていますね)これをもう少し数学的に言うと10進数は数を10のN乗と(0,1,2,3,4,5,6,7,8,9)の積の和で表記した数です。この方法を10進法と言います。
https://cdn-ak.f.st-hatena.com/images/fotolife/c/cat_falcon/20190805/20190805014338.jpg
2007もそう書くことが出来ます。
https://cdn-ak.f.st-hatena.com/images/fotolife/c/cat_falcon/20190805/20190805014343.jpg
同様に2進数も考える事が出来ます。2進数は数を2のN乗と(0,1)の積の和で表記した数です。この方法を2進法と言います。
https://cdn-ak.f.st-hatena.com/images/fotolife/c/cat_falcon/20190805/20190805014347.jpg
このとき、係数k をビットと言います。そしてNumberはnビットで表記されていると言います。2007を2進数で書くことが出来ます。
https://cdn-ak.f.st-hatena.com/images/fotolife/c/cat_falcon/20190805/20190805014350.jpg
と11ビットで表記できます。大変ですね。初めから2進法で表現されているとわかっている場合は係数を並べて
11111010111
と書きます。誤解を生じる可能性がある場合はこれが2進数であることを示す方法として
https://cdn-ak.f.st-hatena.com/images/fotolife/c/cat_falcon/20190805/20190805014400.jpg
と書きます。しかし、111110101112007だと言われてもピンと来ないですね。しかしこの表記はコンピュータにとっては最も判りやすい表記なんです。


現存のコンピュータはもちろん電気で動いている事は知っていますね。あなたの使っているパソコンもそうです。では電気で計算するって言うのはどうやってやるんでしょうか?
その最も簡単なのはスイッチのONOFFです。しかし実際にはスイッチで無くても良いです。例えば電圧が0の時をOFF、そうでない時をONと約束しておけば良いです。色んなやり方があると思います。ではONとOFFが制御できるとどうして計算できるんでしょうか?
それはONを1、OFFを0と約束しておくと2進数が表現できる事になり、ONとOFFで数2007でも何でも表現できる事になります。そしてこのビットを操作する手順を作り上げていく事で様々な計算を行う事ができるようになります。とは言っても簡単な事ではありません。
ビット操作の単純な仕組みを幾つか用意するといくらでも複雑な操作が可能になり複雑な計算が出来るようになっていきます。
そのため最も基本的なビット操作を行う機構(基本回路)を構成できる事がコンピュータを作るために最も基本的な課題となります。なので現存のコンピュータはこの課題を先人たちが苦労して解決した苦労と努力の産物でもあるという事です。

基本回路(基本素子)
https://cdn-ak.f.st-hatena.com/images/fotolife/c/cat_falcon/20190805/20190805014354.jpg
コンピュータを作り上げるために最低でも必要な課題は
ビットをどうやって表現するか?
基本回路が構成できるか?
という事です。

次回は量子状態をビットとして使う事について考えてみたいと思います。