アンテサンサンさん

2007/11/30

むかしのひび

計算機などで使われる2進数のことを「0か1か」などとよく言ったりしますが、それは数字を文字として見たときの話であって、数値でいくならむしろ「0か-1か」になるんじゃないでしょうか。…こんにちは?
まず、数字を文字として見る、という意味ですけれども、2進数を表現するためには2種類の異なる数字を使えばできますから、それが「0」と「1」でなければならないということでは決してありません。
むしろ、数字である必要すらありません。どんな文字でも記号でも、2種類の区別できるものであればよいのです。たとえば、オンの状態を○、オフの状態を●で表すなら、○●○●●…のように並べれば2進数の表現になります。ほかにも、「/」と「\」を使って\/\\/…とか、「エビ」と「チキ」でチキチキエビチキエビ…、「躁」と「鬱」で躁鬱躁鬱躁…、「みっく」と「みく」でみっくみっくみくみっくみっく…、「俺の」と「ターン!」でターン!俺の俺のターン!俺の…、「ちょwww」と「おまwww」でちょwwwおまwwwおまwww(いつまでやってんの!!
…あ、ちなみにあまやどり的には「ちょっ」推奨です。<心の底からどうでもいい

次に、数値として考える場合ですが、1ビットの領域をもつ変数がもし定義できるとするならば、その変数がとりうる値の範囲は-1~0になると考えます。つまり、符号つき整数型として見るわけです。
たとえば、1バイトの符号つき整数が表現しうる値は-128~127です。これは、2進数で00000000のときの値を0、11111111のときの値を-1としているためで、0をはさんで、負の数のほうが128個と、正の数の127個に対して1つだけ多く作れます。そのために-128~127になります。
この考えを拡張して(むしろ縮小?)、1ビットのときも正の数より負の数が1つ多く表現できる、というふうにあてはめれば、おのずと値の範囲は-1~0となることが導き出されると思います。
では、なぜ符号つき整数型として考えたのか。根拠となるひとつの例は、VisualBasicのブール型です。ブール型で宣言した変数の値を型変換などして見てみると、Falseのときには0、Trueのときには-1が格納されていることがわかります。ブール型自体の領域は2バイトなのですが、このとき変数内のビットが全オフまたは全オンの状態になっていることを意味します。これもやはり拡張というか話を引用すれば、ビットがオフのときは値が0、オンのときは値が-1、というふうに言ってよいと思います。
なので、2進数というのは「0か-1か」の組み合わせで数を表現しています。<断言しちゃってるし

…あたしはこういうのが好きな(またかよ

ソーシャル/購読

このブログを検索

コメント

ブログ アーカイブ