オリジン(origin)とは、原点のことで、主に0オリジンと1オリジンが存在する。0オリジンのものは0から数え始め、1オリジンのものは1から数え始める。ちなみに0オリジンと1オリジンは和製英語で、英語ではzero-basedとone-basedなどという。
オリジンの混在
複数のオリジンが混在する身近な例として、日時があげられる。年・月・日は1オリジン(数え初めが1年1月1日)であるが、時・分・秒は0オリジン(0時0分0秒)である。時については0時のことを12時ということもあるため紛らわしいが、0時が午前と午後の境であるために0オリジンであるといえる。ただし、期間を表す場合はすべて0オリジンとなる。
世紀の数え方は1オリジンと考えられる。つまり、紀元1年は1世紀であり、0年や0世紀は存在しない(紀元前1年の直後は直後は紀元1年となる)。ただし天文学的紀年法では0オリジンで年を数える。
また、年齢の数え方として満年齢と数え年がある。ほかにも違いがあるが、それぞれの特徴として満年齢は0オリジンであり、数え年は1オリジンであることがあげられる。
プログラミング言語
プログラミング言語やそのライブラリ・API類では、両方が散在する。特に言語によって配列の先頭が0なのか1なのかはよく議論になる。配列では、C言語などは0オリジン・FORTRANは1オリジンである。BASICのように複数回の標準化で標準が変わったという言語もある(特に2回目の標準ではデフォルトの1オリジンから0オリジンに変更できるようにした。そのためVisual Basicなど現代的なBASICは両対応である)。また日付を扱うライブラリを例にすると、月日を直感的な1オリジンで扱うか、算術的に便利な0オリジンに変換するか、どちらにも得失があり混在していることもあるので注意を要する。
VBAでのオリジンの指定
以下はVisual Basic for Applicationsでオリジンを指定する例である。
Option Explicit Option Base 1 ' 1オリジンに指定 Sub Foo() Dim bar(2) As Integer bar(0) = 1 ' 1オリジンの場合のみランタイムエラーが発生する End Sub
参考文献
この節の加筆が望まれています。 |
関連項目
この節の加筆が望まれています。 |