2進数(binary)といえばITの基本中の基本、ですが、ふとこんな疑問に出会いました。
2進数で数えていくと、10進法(the decimal system)の128は、
「10 000 000」
です。8桁ですが、「桁」をITの世界では bit と呼ぶそうです。 つまり8bit です(そして1Byte でもあります)。
数学の復習になりますが、情報学的に2進数によりマイナス表記をしたい場合、「
2の補数[complement](足すと桁上がりする数値)」という概念を利用するそうです。ちなみに、2進数の数値の1と0を反転させ、1を足しても同じです。さらに
負数[negative number]の場合、
頭の1がマイナスを表す、と決めるそうです。例えば、
00 000 011(=3)に対する補数は、
11 111 101(=-3)です。
8bitで考える場合、繰り上げの桁は無視される、つまりコンピューターに認識されない、ので、これらの2進数を足し合わせると、
100 000 000(=0)になるという算段です。
1は認識されていません。
127の場合は、
01 111 111(=127)
10 000 001(=-127)
で、足し合わせるとやはり
100 000 000
となります。
こういう考えに沿って考えると、10進法における128は2進数では、
10 000 000 ですが、これの2の補数を考えると、同じく10 000 000となります。
で、どっちなんだろうなぁー、と思っていたところ、いいサイトがありました。
http://www.infonet.co.jp/ueyama/ip/binary/signedbin.html
要は、「符号付き2進数(signed binary)」と定義するかしないか、だけの話でした。
先ほど
10 000 001 は十進法で言う-127と表記しました。上記の考え方で行くと、これが
符号なしだと
129(=10 000 000[=128] + 00 000 001[=1])になるわけです。
上記のサイトの記事は、もう〜5年くらい前に文系大学の一般教養科目として書かれたものらしいですが、かなり詳しいデス! パソコンの歴史とか当時の写真付きだし、質としてはいいと思います。これは使える!
2進法はコンピューターを理解するための目的だったとありますが、4000年前くらいの古代のインダス文明の人たちには、2進法を使っていた形跡があるとかなんとか! 驚きです。
http://www.infonet.co.jp/ueyama/ip/episode/indus.html
パソコンの歴史って、どれが現代のパソコンの直接の原型モデルかを定義することは難しいらしいです。 太平洋戦争前後のものが一応の原型とされる事が多いみたいです。もちろん戦争利用目的の産物だったりしますが。
プログラムとかそのものの起源をさかのぼると20世紀初期くらいまで行くと思う。確かそう。エイダとかいう女性が初プログラマーだとかなんとか。人類の2重の手間を省いて行こうという、効率化を目指し続けた結果が今日なんだなぁ、と先代の努力と英智に感謝です。
↓似た内容が紹介されている。てことは、これ理解すると大学の単位としては情報処理概論で「S」ないし「優」が取れちゃうレベルってことかな。図解雑学シリーズ、侮れない!
「291円」ですよ。私立大学の年間学費が100万超で、1年に40単位、一科目2単位だと仮定すると、情報処理概論ひとつで
2万5千円/単位×2単位=5万円、
払っている計算になります。1学期で13回くらいの授業があるとすると、
5万円÷13回≒3,800円/回(設備費とか人件費とか込み込みで…)
大学って何なんですかね…。知的財産商売って原価はいったいいくらなの?
コメント