2008年03月01日

はじめに 0 ありき

 人がモノを数えるときには1から始まるのが普通ですが、コンピューターの場合は0から数え始めることが何かと多いです。もちろんこれには理由があるのですが、端的に書いてしまえば「その方が便利だから」です。

 たとえば検索エンジンの結果などで、何百件、何万件とあるデータを、1ページあたり25件ずつ表示する機能があったとしましょう。このとき、

 1番目のページに、 1番目〜25番目のデータを表示
 2番目のページに、26番目〜50番目のデータを表示
 3番目のページに、51番目〜75番目のデータを表示

……という具合にデータを処理するよりも

 0番目のページに、 0番目〜24番目のデータを表示
 1番目のページに、25番目〜49番目のデータを表示
 2番目のページに、50番目〜74番目のデータを表示

……とするほうが、ちょっとだけ計算しやすくなります。このように、0番目から始まる数え方を「0起算」といいます。1から数え始めるのは1起算です。

 上の例で1起算では、データの番号から1を引いて25で割ったときの商に1を加えるとページ番号になります。たとえば51番目のデータは、(51-1)÷25+1=3なので、3ページ目です。一方、0起算の場合、データの番号を25で割ったときの商がページ番号に一致します。51番目のデータは、51÷25の商は2(余り1)なので2番目のページに表示されます。このように、0起算の方がシンプルに計算できます。

 もっとも、コンピューター内部では0起算の方がシンプルだとはいっても、世間一般では1起算が広く使われている事実は変えられません。そこで、表示するときにはページの番号やデータの番号にそれぞれ1を加えます。

 0番目のページ → 1ページ目として表示
 1番目のページ → 2ページ目として表示
 
 0番目のデータ → 1番目のデータとして表示
 1番目のデータ → 2番目のデータとして表示

 こうすることで、内部では0起算でも、利用者の目には1起算に見えます。

 ところで、西暦と世紀も1起算なので2001年から2100年までが21世紀となっています。そのため、1999年から2000年に変わっても20世紀のままであり、2000年から2001年に変わったときに21世紀になる……という不自然な状況が生まれました。もし西暦0年、0世紀から始まっていれば、794年は7世紀、1192年は11世紀、2009年は20世紀……という具合に、西暦を100で割った商を求めるだけで何世紀なのか分かります。0から数え始めると、きわめて自然な考え方が通るようになるのです。

人気ブログランキング
web拍手 by FC2
posted by 北条利彦 at 12:15 | Comment(0) | TrackBack(0) | 基礎知識 | このブログの読者になる | 更新情報をチェックする
この記事へのコメント
コメントを書く
お名前:

メールアドレス:

ホームページアドレス:

コメント:

認証コード: [必須入力]


※画像の中の文字を半角で入力してください。
この記事へのトラックバックURL
http://blog.seesaa.jp/tb/87810470

この記事へのトラックバック
×

この広告は1年以上新しい記事の投稿がないブログに表示されております。