0

数としての 0

0 は 1 の直前の整数である。多くの数体系で 0 は負の概念よりも前に同定され、負の概念は 0 よりも小さいものとして理解される。0 は偶数である。0 は正の数でも負の数でもない。0 を自然数とする定義もあり、その場合自然数と正の整数は同義ではない。
0は数量が空っぽであることを意味する数である。兄弟が0人いるというのは兄弟がひとりも居ないことを意味し、重さが0であるというのは重さが無いことを表す。あるいは二つの砂山の砂粒の数の差が0であるということは、その二つの砂粒の数の差がないことを意味する。
数を数えはじめるまえは、ものが0個であると仮定することができる。つまり、最初のものを数え始めるまでは0で、最初のものを持ってきてはじめて1であると勘定することになる。ほとんどの歴史学者をはじめ世界中の人々はグレゴリオ暦やユリウス暦から紀元0年を除いて考えるが、天文学者などは計算上不都合があるため暦に紀元0年を含めて考える。また、（紀元）0年という文言は、時間における新しい起点となりうる、非常に意義深い出来事を記述する場合にも用いられることがある。

数字の 0 とアルファベットの O との区別

伝統的に、多くの印刷書体では大文字の O を細い楕円形の 0 よりもさらに丸いものにしている。タイプライターではもともと O と 0 の字形を区別してはいなかったし、0 に対してキーを割り当てていないモデルすら存在した。これらの字形に区別がはっきりと生じるのは、コンピュータのプログラムのように明確に識別できることが必要になった、現代的な文字表示装置においてである。
中央に点のある 0 が用いられたのは IBM 3270 表示装置の付属文字が最初であろう。この字体は Microsoft Windows でも Andalé Mono 書体に受け継がれている。点の代わりに短い縦棒を用いたものもあり、これは解像度の悪い表示画面ではギリシャ文字の Θ と紛らわしいかもしれないが、Θ が表示可能な文字でなかったりともかくあまり使われないなどの理由で現実的にはそれほど問題となってはいない。
他に、斜線付きゼロ（O を / で串刺しにしたような字形）が初めて用いられたのは、パンチカードやテープに転写する前の手書きコーディングシートにおいてであり、ASR-33 テレタイプのデフォルトのタイプホイールの流れを汲む旧式の ASCII 図形文字集合においても用いられる。この字形は空集合を表す記号  あるいは "∅"（Unicodeで U+2205 の文字）や、いくつかのスカンジナビア語群で用いられる Ø とも似ている。CSSでは、OpenTypeフォントのfont-featureタグを用いて、0に斜線を入れることもできる。Unicodeでは、バージョン9.0にて異体字セレクタを用いたシーケンスU+0030（数字0） U+FE00（VS1）で斜線付き0が定義された。
逆に、文字 O に斜線をつけて数字の 0 につけない慣習を支持するのが、著名なIBMユーザーグループの SHARE であり、FORTRAN のプログラムの書式としてこの慣習が IBM によって推奨されている。また、他のいくつかの初期のメインフレームメーカーもこれを支持している。この慣習はスカンジナビア人にとっては二つの文字の衝突を意味するため十分問題含みである。これらの他は、IBM の Algol プログラムの書式をも含め、これとは逆の慣習を支持している。 バロース/ユニシスの画面表示装置には逆斜線つき 0 を備えたものもある。別の慣習として、初期のラインプリンタでは飾りのない 0 を残したものの、大文字の O にはしっぽやひげをくわえて、逆向きの Q や筆記体の大文字 O () のように見える字形としたものがあった。とあるタイプ式のプリンタで、0 と O は別の活字になっているのに、あまりに似ていて区別ができないデザインであることに腹を立てた人が、O の活字をヤスリで加工して切れ目を入れてしまった、というエピソードもある。
計算機での使用を目的として設計されたフォントでは、アルファベット O と数字 0 の一方をより丸く他方をより（長方形に近く）角ばらせているものがある。テキサス・インスツルメンツの TI-99/4A 計算機では大文字の O が四角くて数字の 0 が丸いという特徴であったが、これ以外の計算機では逆の選択がなされている。
ヨーロッパの大部分では、車輌のナンバープレートの書体でこの方法を部分的に用いて（0 を四角くしたり、0 よりも O のほうを幅広にしたりして）これらの記号を区別しているが、国によってはさらに 0 の右上隅に切込みをいれてより明確な区別をつけているものもある（たとえば、ドイツの車輌ナンバープレートで用いられている変造防止文字 (fälschungserschwerende Schrift) など）。
時には、混乱を完全に避けるために専ら数字の 0 を用いたり逆にまったく用いなかったりすることもある。例えば、サウスウエスト航空で用いられている予約番号では数字の 0 と 1 の代わりに専ら大文字の O と I が使用されているし、反対にカナダの郵便番号や日本銀行券の記番号では 1 と 0 が用いられるのみで、大文字の I と O は使用されていない。

0 の起源

ゼロの発明は、数学史の飛躍の一つである。
紀元前2500年頃のピラミッドの幾何学的な正確性は、古代エジプト人が高度な数学を持っていたことを示す。しかし古代エジプトでは数学は主に暦法と土地測量の手法として発展したため、零の研究は発達せず、それを表す記号もなかった。面積がゼロの土地はなく、0日めのあるカレンダーもない。よってゼロは不要であった。
紀元前500年頃、楔形文字を使っていたメソポタミア文明で、位が 0 であることを示す文字を使い始めたことがわかっている。六十進法を用いたバビロニアの数の表記には、古くは 0 がなく、例えば「62」と「602」は表記が全く同じで、見分けがつかなかった。これは非常に不便であったので、時代が下ると 6 と 2 の間に斜めの楔を並べて、62 と 602 の区別を表すようになった。この文字が人類が最初に 0 を表現した記号とされている。しかし、0 自体を数のうちとして扱ってはいなかった。
古代ギリシャでは高度な数学と天文学が発展したが、ギリシャ数字は計算が非常に面倒だったので、天文学のような大がかりな計算にはバビロニアから伝わった六十進法を使った。最も古い例は130年、プトレマイオスが零と六十進法を用いて計算をした記録がある。ギリシャの数学者はこの方法で時間や角度を計算し、1時間、また角度の1度の1/60を1分、1/60分を1秒とした。しかし整数部分である1時間単位や角度そのものには零を使わず、12時の次は0時ではなく1時であった。ギリシャでは、バビロニアのゼロ記号にはギリシア文字のオミクロン「ο」を当てた。アラビア数字の0と形が似ているが、これはおそらく偶然であったとされる。
アルキメデスは「ある数とある数を足せば、結果は元の数より大きくなる」という「アルキメデスの公理」を定立したが、足しても増えない性質を持つゼロは、この公理上、数ではないことになる。古代ギリシア人は「ο」を単に小数点のような位取りを表す補助記号として使い、数のうちに含めなかった。ギリシア数字にはゼロを示す文字がなく、ギリシャの数体系を継承したローマ数字にもゼロにあたる数字がない。
古代西洋で 0 の概念が受容されなかったのは、その宇宙観によるところが大きかった。アリストテレスは「自然は真空を嫌う」と宣言し、空間は必ず何らかの物質が充満しているとして真空、つまり「無」の存在を認めなかった。またアリストテレスは、宇宙を地球を中心にする球である天球と定義し、有限なものと考えた。この哲学からは「無」と「無限」は認められなかった。
アリストテレス哲学を源流とする「無」と「無限」を否定する宇宙観は中世ヨーロッパに継承され、宗教の一部と化した。17世紀まで、ヨーロッパでゼロや無限を主張することは、キリスト教への冒涜であり、死刑宣告を意味した。中世ヨーロッパではゼロを悪魔の数字とみなし、ローマ法王により使用が禁じられた。1600年には、宇宙が無限であると主張した修道士のジョルダーノ・ブルーノが、異端の罪で火あぶりの刑にされている。
「無」が実在することを認め、ゼロを数として定義したのは「無」や「無限」を含む宇宙観を持ち、哲学的に「無」を追究した古代インドにおいてである。0の位置を記号で表わすバビロニアの方法はインドにも伝わった。最近になってオックスフォード大学の研究チームが、1881年に現パキスタン国内で発見されたバクシャーリー写本と呼ばれるカバノキの樹皮の巻物の数学書が、これまで考えられていたより500年古い3 - 4世紀頃のものであることを年代測定で特定した。そしてこの巻物に記された黒点が、インドにおける最古の0を表す文字であることになった。
古代インドの数学で数としての「0」の概念が確立されたのは、はっきりしていないが5世紀頃とされている。数学者のブラーマグプタは、628年に著した『ブラーマ・スプタ・シッダーンタ』において、0 と他の整数との加減乗除を論じ、0 / 0 を 0 と定義した以外はすべて現代と同じ定義をしている。ゼロは「シューニャ」（ サンスクリット語: शून्य, śūnya。うつろな）と呼ばれた。9世紀頃のグワリオールの寺院の壁に残る碑銘が「0」の最古の例とされていたが、バクシャーリー写本の年代が放射性炭素年代測定によって3-4世紀であることが判明したため、年代が約500年さかのぼった。これがアラビアに伝播し、フワーリズミーの著作のラテン語訳 羅: Algoritmi de numero Indorum により「アラビア数学」の「0」として西欧に広まっていった。
インド・中東・ヨーロッパを除いて、数や空位を表す記号としての「0」を確立した地域としては、マヤ文明が代表例である。マヤ数字は二十進法を用いたが、「0」を意味する記号として貝殻に似た模様 が用いられた。二十は「点1つの下に貝殻模様」という位取り記数法であり、例えば十進表記の1616（二十進表記の40G）は上から順に「点(一)が4つ | 貝殻模様 | 横棒(五)が3つ + 点(一)が1つ」という形式で表記された。
中国では算木が紀元前から使われており、位取り記数法が確立していたが、空位は空白で表していた。算木を実際に使うときは誤解がないが、それを書写するときは紛らわしい。後に空位を「〇」と書くようになった。これはインドの「0」が輸入されたとも、元々、漢文で空白を表す「囗」が「〇」に変化したともいう。漢数字#〇、零を参照。

物理学における使用

多くの物理量において 0 は特別な値であるが、それは物理的な必然性を持って設定されることもあれば、何らかの任意の基準を適当に割り当てることもある。例えば熱力学温度における 0 度は理論的な最低温度（絶対零度）である一方、セルシウス度の 0 度は（数ある物質の中から）水の融点を選んで定義されている。
音の強さの単位であるデシベルやホンは、基準として選んだ音の強さ（例えば、人間が聞き取れる最小の音量）を 0 と定めての相対値である。これは、倍率の表現に指数を使っているからである。すなわち「基準の1倍」が「基準の、(10のゼロ乗)倍」だからである（底としては10の他に2やeなどの場合もある）。
零点振動は量子力学（不確定性原理）において許される最低のエネルギー状態における原子の振動である。

コンピュータにおける 0 の使用

初期の、FORTRAN や COBOL などのプログラミング言語では、配列の添字は 1 から始める方式であった（「1オリジン」という）。しかし、1950年代後半の時点で既に ALGOL 58 が柔軟な配列の添字（正、負、0 のいずれの整数も可）を導入している。現代の多くの言語は「0オリジン」であり、例えばC言語では、n 個の要素を持つ配列の添字は 0 から n-1 までである。0オリジンには、配列の先頭アドレスに単に添字を足すだけで、その要素の位置を求めることが出来る利点がある。一方でBASICのように、古い標準（JIS C 6207-1982「基本BASIC」）では0オリジンだったのに、新しい標準（JIS X 3003:1993「Full BASIC」）では（変更可能だが）1オリジンがデフォルト、と逆行した例もある。
ヌルポインタはどんなオブジェクトも指さないポインタである。C言語においては整数定数の 0 がポインタの文脈で解釈されるとヌルポインタとなる。これは単なる記法であり、実際には計算機環境に適合した内部表現のヌルポインタが作られる（0番地と決まっているわけではない）。
0 はしばしばコンピュータにおいて特別な意味を持つ。C言語を始めとする多くの言語では、真偽値として評価する文脈において 0 は偽を意味すると判断される（0以外の全ての値は真と判断される）。一方、プログラムが戻り値として 0 を返した場合は正常終了と見なされる事が多い。errnoなどのエラーコードにおいても 0 は「エラーでない」の意味によく割り当てられる。コードポイントの 0 ('\0')はヌル文字であり、文字列の終端を意味する。
−0 は、普通の算術では 0 とまったく同じものであるが、1の補数など、表現方法によっては別の表現が与えられることがある（現代の多くのコンピュータで採用されている2の補数では区別はない）。また、多くの浮動小数点数では、-0.0 は別のものとして扱われることがある（詳細は「IEEE 754における負のゼロ」の記事を参照）。