0の0乗
(ここで a は任意の実数)となり、また
lim x → 0 + ( e − 1 x 2 ) x sin  1 x {\displaystyle \lim _{x\to 0^{+}}\left(e^{-{\frac {1}{x^{2}}}}\right)^{x\sin {\frac {1}{x}}}}
は振動する。ここで、x → 0 は x が正の方向から 0 に近づく極限を表す。
極限が 1 になるための十分条件はいくつか知られている。例えば f および g がともに x = 0 において実解析的であり、ある正数 b > 0 に対し開区間 (0, b) 上 f > 0 であれば、(x → 0 のとき f(x) → 0, g(x) → 0 であれば)f(x) の x → 0 のときの極限は必ず 1 である。
複素領域において、0 でない z に対し、関数 z を、log z の分枝を選び、z を e と定義できる。これは 0 を定義していない、なぜならば z = 0 において定義された log z の分枝は存在せず、したがって当然 0 の近傍で定義された log z の分枝も存在しないからである。したがってこの意味で 0 は定義されないのであるが、著者によっては別途、
Re w > 0 に対しては 0 と定義したり
w ≠ 0 に対しては 0 と定義したり
している。
0 における 0 を2つとも基数、あるいは2つとも順序数と考えた場合、0 = 1 は基数あるいは順序数の冪の定義から示すことのできる定理である。
以下基数の場合について解説する。一般に基数 κ, λ に対して、冪乗 λ は、濃度 が κ, λ の任意の集合をそれぞれ X, Y としたとき、X から Y への写像の個数(濃度)で定義される:
λ κ := # Y X . {\displaystyle \lambda ^{\kappa }:=\#Y^{X}.}
ここで、Y は X から Y への写像全体の集合であり、# は集合の濃度を表す。(この定義は X と Y の取り方に依らないことに注意。)しかるに、0 は X = Y = ∅ の場合に相当するから、 0 0 = # ∅ ∅ {\displaystyle 0^{0}=\#\emptyset ^{\emptyset }} である。ここで、∅ から ∅ への写像は唯一つ存在するから(空写像)、 # ∅ ∅ = 1 {\displaystyle \#\emptyset ^{\emptyset }=1} である。したがって 0 = 1 である。
いくつかのプログラミング言語は 0 を定義しており、その多くは 1 としている。1 と定義しているプログラミング言語は、APL、Common Lisp、Haskell、J、Java、JavaScript、Julia、MATLAB、ML、Perl、Python、R、Ruby、Scheme であり、電卓では、Microsoft WindowsおよびGoogleの電卓機能などである。Microsoft Excel では、ワークシート上で =0^0 という数式を入力すると #NUM! というエラーを返すが、同ソフトウェアに搭載されている VBA では1と定義されている。 Mathematica は、a が変数または 0 でない数のときは a を 1 と計算するが、0 は Indeterminate(不定)と返す。Maple やMuPADはこれらを共に 1 と計算する。Wolfram Alpha ではundefinedと表示される。