記事「初級から中級まで:配列と文字列(III)」についてのディスカッション

 

新しい記事「初級から中級まで:配列と文字列(III)」はパブリッシュされました:

この記事では2つの側面について考察します。まず、標準ライブラリを使ってバイナリ値を8進数、10進数、16進数などの表現に変換する方法について説明します。次に、これまでに習得した知識を活用して、秘密のフレーズに基づいてパスワードの桁数をどのように決定できるかについて解説します。

プログラミングにおける最も一般的なタスクの一つは、情報やデータベースの変換と処理です。プログラミングとは、本質的にこの作業のことを指します。プログラミングを学ぼうとしているにもかかわらず、アプリケーションの目的が「コンピューターが解釈できるデータを作成し、それを人間が理解できる情報へと変換すること」であるという点を理解していないのなら、その方向は間違っています。一度立ち止まって、最初から学び直した方がよいでしょう。なぜなら、実のところ、プログラミングはこの単純な原則の上に完全に成り立っているからです。まず、コンピューターが理解できるように情報を整える必要があり、その後、コンピューターが出力した結果を私たち人間が理解できる形に変換する必要があります。

コンピューターは1と0の処理において非常に優れていますが、それ以外の情報の処理には全く向いていません。同様に、人間は1と0の羅列を解釈するのが苦手ですが、言葉やグラフの意味は直感的に理解できます。

ここで、いくつかの概念についてもう少し噛み砕いて説明しましょう。コンピューターの黎明期、最初期のプロセッサにはOpCodeセットと呼ばれる命令群があり、10進数の値を扱うための命令が含まれていました。そう、初期のプロセッサは「8」や「5」が何を意味するかを理解していたのです。これらの命令はBCD (Binary-Coded Decimal)セットに属しており、バイナリロジックを使って、人間にとって意味のある形で数値を処理できるように設計されていました。

しかし時が経つにつれて、BCD命令は使われなくなっていきました。なぜなら、10進数計算が可能な回路を設計するのは非常に複雑であり、それよりも2進数で計算をおこなってから結果を10進数に変換する方がはるかに合理的だったからです。その結果、こうした「変換」の役割はプログラマーに委ねられることとなりました。

当時、浮動小数点数の扱いは混沌としており、まさに「フルーツサラダ」状態でした。しかしそれについてはまた別の機会に扱うことにしましょう。今の段階で紹介してきたツールや概念だけでは、浮動小数点の仕組みをまだ十分に説明できないからです。その前に、いくつか重要な概念をさらに解説する必要があります。


作者: CODE X