ゼロから数えることは、多くのコンピューター言語で非常に一般的な方法ですが、なぜですか?現象とそれがなぜそれほど広まっているのかを探るときに読んでください。
今日の質疑応答セッションは、コミュニティ主導のQ&AWebサイトのグループであるStackExchangeの下位区分であるSuperUserの好意で行われます。
質問
スーパーユーザーリーダーのDragonLordは、ほとんどのオペレーティングシステムとプログラミング言語がゼロから数えられる理由に興味を持っています。彼は書く:
コンピュータは伝統的にゼロから始まる数値を集計します。たとえば、Cベースのプログラミング言語の配列はインデックス0から始まります。
これにはどのような歴史的な理由があり、ゼロから数えることは1から数えることよりも実際的な利点は何ですか?
なぜ本当に?慣行が広まっている限り、確かにその実装には実際的な理由があります。
答え
スーパーユーザーの寄稿者であるMatteoは、次の洞察を提供します。
配列を0から数えると、各要素のメモリアドレスの計算が簡単になります。
配列がメモリ内の特定の位置(アドレスと呼ばれる)に格納されている場合、各要素の位置は次のように計算できます。
element(n)=アドレス+ n * size_of_the_element最初の要素を最初に考えると、計算は次のようになります。
element(n)=アドレス+(n-1)* size_of_the_element大きな違いではありませんが、アクセスごとに不要な減算が追加されます。
追加するために編集:
答えをさらに深く掘り下げたい場合は、ダイクストラの論文が参考になります。
説明に追加するものがありますか?コメントで音を立ててください。他の技術に精通したStackExchangeユーザーからの回答をもっと読みたいですか? ここで完全なディスカッションスレッドをチェックしてください 。