.0とは、Microsoft社のプログラミング環境である「Visual Basic」で作られる一時保存用ファイル(テンポラリーファイル)に付く拡張子のことである。
(2)出典: フリー百科事典『ウィキペディア(Wikipedia)』 (2026/02/04 18:30 UTC 版)
| −1 ← 0 → 1 | |
|---|---|
| 二進法 | 0 |
| 三進法 | 0 |
| 四進法 | 0 |
| 五進法 | 0 |
| 六進法 | 0 |
| 七進法 | 0 |
| 八進法 | 0 |
| 十二進法 | 0 |
| 十六進法 | 0 |
| 二十進法 | 0 |
| 二十四進法 | 0 |
| 三十六進法 | 0 |
| ローマ数字 | N |
| 漢数字 | 〇 |
| 大字 | 〇 |
| 算木 | ![]() |
文字 0 によって表されるものは、おもに「何もないこと」に対応する基数(自然数[注 1])であり、1 の直前の序数(順序数)であって、最小の非負整数である。また、−1 の次の整数でもある。零(れい、ぜろ)、ゼロ(伊: zero)、セロ(西: cero)、ヌル(独: Null)、ノート(英: nought)、ニヒル(羅: nihil)などと読まれる。また、文字の形状から、稀にまるあるいはオーなどのように呼ばれることもある。なお、日本の通話表においては、0 は「数字のまる」と送られる。
数としての 0 は、整数環、実数体(あるいはさらに一般の数からなる代数系 )における加法単位元であるという性質をもっている。文字としての 0 の使用は位取りによる記数法の桁揃えに役立つ。
0 は 1 の直前の整数である。多くの数体系で 0 は負の概念よりも前に同定され、負の概念は 0 よりも小さいものとして理解される。0 は偶数である[1][注 2]。0 は正の数でも負の数でもない。0 を自然数とする定義もあり、その場合自然数と正の整数は同義ではない。
0は数量が空っぽであることを意味する数である。兄弟が0人いるというのは兄弟がひとりもいないことを意味し、重さが0であるというのは重さが無いことを表す。あるいは二つの砂山の砂粒の数の差が0であるということは、その二つの砂粒の数の差がないことを意味する。
数を数えはじめるまえは、ものが0個であると仮定することができる。つまり、最初のものを数え始めるまでは0で、最初のものを持ってきてはじめて1であると勘定することになる。ほとんどの歴史学者をはじめ世界中の人々はグレゴリオ暦やユリウス暦から紀元0年を除いて考えるが、天文学者などは計算上不都合があるため暦に紀元0年を含めて考える。また、(紀元)0年という文言は、時間における新しい起点となりうる、非常に意義深い出来事を記述する場合にも用いられることがある。
現代的な数字の 0 は、円、楕円、角の丸い長方形のような形に書かれるのが普通である。最も現代的な書体では 0 は他の数字と高さが同じになるものが普通だが、ノンライニング数字のある書体では、左図のように0の文字の高さが低くなることが多い(x-height)。
電卓やデジタル時計、家電などで見られる7セグメントディスプレイ上では、0 は普通6個の線分で描かれるが、4個の線分で 0 を表すものも古いモデルなどで見られることもある(アルファベットの oとして表示される場合もある形である)。
位取り記数法で用いられる数字の 0 は、数あるいは数値としての 0 とは別物である。位取り記数法における数字の並びは上位の桁の数字がより高い重みを持つので、位取り記数法における数字の 0 は空位を表すのに用いられ、それによって下位および上位の桁の数字に適切な重みを与えることができる。位取り記数法で数字の 0 がいつでも必要というわけではない。たとえば 02 は数としては 2 と同値であるため先頭の 0 は冗長である。
稀に、頭に 0 を付けた数値を付いていない数値と別のものとして扱うことがある。例えばルーレットで '00' は '0' とは別('0' に賭けたなら玉が '00' に止まっても勝ちにならないし、逆もそう)である。競技者に番号が振られるスポーツなども同様で、例えばストックカーで '07' 番の車は '7' 番の車とは別だと看做される。
伝統的に、多くの印刷書体では、似た字体である0と大文字のO(オー)との区別のために、大文字の O を細い楕円形の 0 よりもさらに丸いものにしている[2]。タイプライターではもともと O と 0 の字形を区別しておらず、0 に対してキーを割り当てていないモデルが存在した。これらの字形に区別がはっきりと生じたのは、コンピュータのプログラムのように明確に識別できることが必要になった[注 3]、現代的な文字表示装置が普及したからである[2]。
中央に点のある 0 が用いられたのは IBM 3270 表示装置の付属文字が最初であろう。この字体は Microsoft Windows でも Andalé Mono 書体に受け継がれている。点の代わりに短い縦棒を用いたものもあり、これは解像度の悪い表示画面ではギリシャ文字の Θ と紛らわしいかもしれないが、Θ が表示可能な文字でなかったりともかくあまり使われないなどの理由で現実的にはそれほど問題となってはいない。
他に、斜線付きゼロ(O を / で串刺しにしたような字形)が初めて用いられたのは、パンチカードやテープに転写する前の手書きコーディングシートにおいてであり、ASR-33 テレタイプのデフォルトのタイプホイールの流れを汲む旧式の ASCII 図形文字集合においても用いられる。この字形は空集合を表す記号 ![]()
ヨーロッパの大部分では、車輌のナンバープレートの書体でこの方法を部分的に用いて(0 を四角くしたり、0 よりも O のほうを幅広にしたりして)これらの記号を区別しているが、国によってはさらに 0 の右上隅に切込みをいれてより明確な区別をつけているものもある(たとえば、ドイツの車輌ナンバープレートで用いられている変造防止文字 (fälschungserschwerende Schrift) など)。
時には、混乱を完全に避けるために専ら数字の 0 を用いたり逆にまったく用いなかったりすることもある。例えば、サウスウエスト航空で用いられている予約番号では数字の 0 と 1 の代わりに専ら大文字の O と I が使用されている[5]し、反対にカナダの郵便番号や日本銀行券の記番号[6]では 1 と 0 が用いられるのみで、大文字の I と O は使用されていない。
紀元前2500年頃のピラミッドの幾何学的な正確性は、古代エジプト人が高度な数学(エジプト数学)を持っていたことを示す。しかし古代エジプトでは数学は主に暦法と土地測量の手法、配分のための計算(エジプト式分数)として発展したため、零の研究は発達せず、それを表す記号もなかった。面積がゼロの土地や0日めのあるカレンダーは無いためゼロは不要であった[7]。
中国では紀元前14世紀以来10進法が用いられ、紀元前4世紀には位取り記数法による筆算を用い、ゼロを空位で表示していた。例えば405は「4、空白、5」とした[8]。なお小数も中国において発明され紀元前より使用されており、16世紀にヨーロッパに伝えられた。
楔形文字を使っていたメソポタミア文明でも、位が 0 であることを示す文字を使い始めたことがわかっている。六十進法を用いたバビロニアの数の表記には、古くは 0 がなく、例えば「62」と「602」は表記が全く同じで、見分けがつかなかった。これは非常に不便であったので、時代が下ると 6 と 2 の間に斜めの楔を並べて、62 と 602 の区別を表すようになった。この文字が人類が最初に 0 を表現した記号とされている。しかし、0 自体を数のうちとして扱ってはいなかった。
古代ギリシャでは高度な数学と天文学が発展したが、ギリシャ数字は計算が非常に面倒だったので、天文学のような大がかりな計算にはバビロニアから伝わった六十進法を使った。最も古い例は130年、プトレマイオスが零と六十進法を用いて計算をした記録がある。ギリシャの数学者はこの方法で時間や角度を計算し、1時間、また角度の1度の1/60を1分、1/60分を1秒とした。しかし整数部分である1時間単位や角度そのものには零を使わず、12時の次は0時ではなく1時であった。ギリシャでは、バビロニアのゼロ記号にはギリシア文字のオミクロン「ο」を当てた。アラビア数字の0と形が似ているが、これはおそらく偶然であったとされる[9]。
アルキメデスは「ある数とある数を足せば、結果は元の数より大きくなる」という「アルキメデスの公理」を定立したが、足しても増えない性質を持つゼロは、この公理上、数ではないことになる[注 5]。古代ギリシア人は「ο」を単に小数点のような位取りを表す補助記号として使い、数のうちに含めなかった。ギリシア数字にはゼロを示す文字がなく、ギリシャの数体系を継承したローマ数字にもゼロにあたる数字がない。
古代西洋で 0 の概念が受容されなかったのは、その宇宙観によるところが大きかった。アリストテレスの自然論においては「自然は真空を嫌う」とされ(真空嫌悪)、空間は必ず何らかの物質が充満しているとして真空、つまり「無」の存在を認めなかった。またアリストテレスは、宇宙を地球を中心にする球である天球と定義し、有限なものと考えた。この哲学からは「無」と「無限」は認められなかった[10]。
アリストテレス哲学を源流とする「無」と「無限」を否定する宇宙観は中世ヨーロッパに継承され、宗教の一部と化した。17世紀まで、ヨーロッパでゼロや無限を主張することは、キリスト教への冒瀆であり、死刑宣告を意味した。中世ヨーロッパではゼロを悪魔の数字とみなし、ローマ法王により使用が禁じられた[11]。1600年には、宇宙が無限であると主張した修道士のジョルダーノ・ブルーノが、異端の罪で火あぶりの刑にされている。
位取り記数法を用いていた古代中国で空位として扱われていた0の位置をバビロニアでは記号で表わしていたが、これがインドに伝わったと考えられている。最近になってオックスフォード大学の研究チームが、1881年に現パキスタン国内で発見されたバクシャーリー写本と呼ばれるカバノキの樹皮の巻物の数学書が、これまで考えられていたより500年古い3 - 4世紀頃のものであることを年代測定で特定した。そしてこの巻物に記された黒点が、インドにおける最古の0を表す文字であることになった[12][13]。
古代インドの数学で数としての「0」という記号の使用が始まったのは、はっきりしていないが5世紀頃とされている。数学者のブラーマグプタは、628年に著した『ブラーマ・スプタ・シッダーンタ』において、0 と他の整数との加減乗除を論じ、0 / 0 を 0 と定義した以外はすべて現代と同じ定義をしている。ゼロは「シューニャ」( サンスクリット語: शून्य, śūnya。うつろな)と呼ばれた。9世紀頃のグワリオールの寺院の壁に残る碑銘が「0」の最古の例とされていたが、バクシャーリー写本の年代が放射性炭素年代測定によって3-4世紀であることが判明したため、年代が約500年さかのぼった[12]。これがアラビアに伝播し、フワーリズミーの著作のラテン語訳 羅: Algoritmi de numero Indorum により「アラビア数学」の「0」として西欧に広まっていった。
サンスクリット語で sunya と呼ばれたゼロを9世紀にアラブ人が知ると、アラビア語で「空のもの」を意味する as-sifr という言葉に翻訳された[14]。13世紀、西洋は as-sifr を翻訳することなくそのまま取り入れ、ラテン語では zefirum とした。他にも、cifra、cephirum というラテン語形もあった。フィボナッチ(ピサのレオナルド)が『算盤の書』で使った呼称は cephirum である[15]。ラテン語名称の zefirum は日常語に食い込んでいき、14世紀になると、イタリア語の zefiro、zefro、zevero となった[14]。これがさらにヴェニス方言で短縮されて zero となった。この言葉の変化の仕方は、libra から livra、そして lira になったのと同様である。15世紀、これがフランス語や英語に伝わり、今日に伝わるゼロの名称となった。
中国・インド・中東・ヨーロッパを除いて、数や空位を表す記号としての「0」を確立した地域としては、マヤ文明が代表例である。マヤ数字は二十進法を用いたが、「0」を意味する記号として貝殻に似た模様
が用いられた。二十は「点1つの下に貝殻模様」という位取り記数法であり、例えば十進表記の1616(二十進表記の40G)は上から順に「点(一)が4つ | 貝殻模様 | 横棒(五)が3つ + 点(一)が1つ」という形式で表記された。
中国では算木が紀元前から使われており、位取り記数法が確立していたが、空位は空白で表していた。算木を実際に使うときは誤解がないが、それを書写するときは紛らわしい。後に空位を「〇」と書くようになった。これはインドの「0」が輸入されたとも、元々、漢文で空白を表す「囗」が「〇」に変化したともいう。漢数字#〇を参照。
数の 0 は最小の非負整数である。0 の後続の自然数は 1 であり、0 より前に自然数は存在しない。数 0 を自然数に含めることも含めないこともあるが、0 は整数であり、有理数であり、実数(あるいは代数的数、複素数)である。
数 0 は正でも負でもなく、素数でも合成数でも単数でもない。一方、0 は偶数である。
以下は数 0 を扱う上での初等的な決まりごとである。これらの決まりは x を任意の実数あるいは複素数として適用して構わないが、それ以外の場合については何も言及していないということについては理解されなければならない。
0 を始点とする概念や体系は、始点からの距離、間隔を測る場合に用いられる。主なものは以下の通り。
| 記号 | Unicode | JIS X 0213 | 文字参照 | 名称 |
|---|---|---|---|---|
| 0 | U+0030 |
1-3-16 |
00 |
DIGIT ZERO |
| 0 | U+FF10 |
1-3-16 |
00 |
FULLWIDTH DIGIT ZERO |
| 〇 | U+3007 |
1-1-27 |
〇〇 |
IDEOGRAPHIC NUMBER ZERO |
| ⁰ | U+2070 |
- |
⁰⁰ |
SUPERSCRIPT ZERO |
| ₀ | U+2080 |
- |
₀₀ |
SUBSCRIPT ZERO |
| ٠ | U+0660 |
- |
٠٠ |
ARABIC-INDIC DIGIT ZERO |
| ۰ | U+06F0 |
- |
۰۰ |
EXTENDED ARABIC-INDIC DIGIT ZERO |
| ༠ | U+0F20 |
- |
༠༠ |
TIBETAN DIGIT ZERO |
| ๐ | U+0E50 |
- |
๐๐ |
THAI DIGIT ZERO |
| 🄀︎ | U+1F100 |
- |
🄀🄀 |
DIGIT ZERO FULL STOP |
| ⓪ | U+24EA |
- |
⓪⓪ |
CIRCLED DIGIT ZERO |
| ⓿ | U+24FF |
- |
⓿⓿ |
NEGATIVE CIRCLED DIGIT ZERO |
| 🄋 | U+1F10B |
- |
🄋🄋 |
DINGBAT CIRCLED SANS-SERIF DIGIT ZERO |
| 🄌 | U+1F10C |
- |
🄌🄌 |
DINGBAT NEGATIVE CIRCLED SANS-SERIF DIGIT ZERO |
| 零 | U+96F6 |
1-46-77 |
零零 |
CJK Ideograph, zero; fragment, fraction |
| 🄁︎ | U+1F101 |
- |
🄁🄁 |
DIGIT ZERO COMMA |
| 𝟘 | U+1D7D8 |
- |
𝟘𝟘 |
MATHEMATICAL DOUBLE-STRUCK DIGIT ZERO |
| 𝟶 | U+1D7F6 |
- |
𝟶𝟶 |
MATHEMATICAL MONOSPACE DIGIT ZERO |
| 𝟎 | U+1D7CE |
- |
𝟎𝟎 |
MATHEMATICAL BOLD DIGIT ZERO |
| 𝟢 | U+1D7E2 |
- |
𝟢𝟢 |
MATHEMATICAL SANS-SERIF DIGIT ZERO |
| 𝟬 | U+1D7EC |
- |
𝟬𝟬 |
MATHEMATICAL SANS-SERIF BOLD DIGIT ZERO |
この記事は2008年11月1日以前にFree On-line Dictionary of Computingから取得した項目の資料を元に、GFDL バージョン1.3以降の「RELICENSING」(再ライセンス) 条件に基づいて組み込まれている。
| (0) | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 |
| 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 | 19 |
| 20 | 21 | 22 | 23 | 24 | 25 | 26 | 27 | 28 | 29 |
| 30 | 31 | 32 | 33 | 34 | 35 | 36 | 37 | 38 | 39 |
| 40 | 41 | 42 | 43 | 44 | 45 | 46 | 47 | 48 | 49 |
| 50 | 51 | 52 | 53 | 54 | 55 | 56 | 57 | 58 | 59 |
| 60 | 61 | 62 | 63 | 64 | 65 | 66 | 67 | 68 | 69 |
| 70 | 71 | 72 | 73 | 74 | 75 | 76 | 77 | 78 | 79 |
| 80 | 81 | 82 | 83 | 84 | 85 | 86 | 87 | 88 | 89 |
| 90 | 91 | 92 | 93 | 94 | 95 | 96 | 97 | 98 | 99 |
|
|||||||||
出典: フリー百科事典『ウィキペディア(Wikipedia)』 (2022/01/03 16:30 UTC 版)
ナビゲーションに移動 検索に移動| 『0.』 | ||||
|---|---|---|---|---|
| amazarashi の EP | ||||
| リリース | ||||
| 録音 | 2009年 |
|||
| ジャンル | J-POP | |||
| 時間 | ||||
| レーベル | レインボーエンタテインメント REP-028 (全国盤) |
|||
| amazarashi アルバム 年表 | ||||
|
||||
| EANコード | ||||
| EAN 4582144341950 | ||||
「0.」(れいてん)は、amazarashiが2009年12月9日に青森県でシリアル番号入り限定500枚で[1]発売したミニアルバムである。2010年2月10日にはボーナストラック1曲を追加した全国盤「0.6」が発売された[2]。
| 全作詞・作曲: 秋田ひろむ。 | ||
| # | タイトル | 時間 |
|---|---|---|
| 1. | 「光、再考」 | |
| 2. | 「つじつま合わせに生まれた僕等」 | |
| 3. | 「ムカデ」 | |
| 4. | 「よだかの星」 | |
| 5. | 「少年少女」 | |
| 6. | 「初雪」 | |
| # | タイトル | 時間 |
|---|---|---|
| 7. | 「光、再考」(DJ KRUSH remix) | |
(0 から転送)
出典: フリー百科事典『ウィキペディア(Wikipedia)』 (2024/09/05 04:36 UTC 版)
−0(マイナスゼロ)、あるいは負のゼロとは、数値のゼロにマイナスの符号をつけたものである。
通常の算術では、負のゼロは単なるゼロ(及び正のゼロ、+0)と同じであるが、これらを分ける方が望ましい場合や、分けて扱わざるを得ない場合がある。
そのようなケースとして、以下のものがある
+0, −0, +∞, −∞ は通常、極限操作を表す記号として用いられ、実数上の元とは扱われない。これは任意の実数 c に対する +c, −c についても同様である。
しかし、煩雑さを避けるため、標語的に正負のゼロや無限大を実数であるかのように表記することがしばしば行われる。
現在のほぼ全てのコンピュータやプログラミング言語が採用している浮動小数点数の標準である IEEE 754 には通常の 0.0 と −0.0 がある。
コンピュータの数値表現では、補数を利用して負数を表現することが多いが、同じ補数でも基数の補数を利用した場合には負のゼロが生じないのに対し、減基数の補数を用いた場合には負のゼロが生じる。また「符号と絶対値」方式の場合にもゼロについて正と負の2つのゼロがある(前述のIEEE 754など)。
気象学では、−0 °Cは 0 °C(セルシウス温度)より低いが −1 °Cとするほどではない温度を示し、統計的な意味(つまり1 °C単位で統計を取る場合)では重要なこともある。例えば、−0.2 °Cがその例である。0 °Cは負の範囲を含まないのでこれを 0 °Cとして統計処理することはできない。また、冬季の寒さを比較する際に日中の気温が 0 °C未満(氷点下)の日を数えることは基本であり、無視することができない。従って −1 °Cに丸めるには絶対値が小さすぎる温度は −0 °C と記録される。道路上などに設置してある気温・路温計でもそれを見ることが出来る。
コンピュータにおける負の値の扱い方にはいろいろあるが、IEEE 754 が採用しているような「符号と絶対値」方式による表現では、ゼロについて、
の二種類の表現が可能であるため、問題が生じることがある。なお21世紀にはほとんど見られなくなったがかつては、整数の表現についても「符号と絶対値」方式が採用されることもあった。
例えば、IEEE 754 では、x == y といったような通常の比較において、通常のゼロと負のゼロを比較した場合、真になることを要求している。単にワードを整数と同様に比較しただけでは、その要求を満たすことができない。もっとも、IEEE 754 ではたとえば NaN についても同様に例外的な扱いが必要なので ( NaN == NaN は常に偽で NaN != NaN は常に真) 、実装上、負のゼロがきわめて特異というわけでもない(IEEE 754 では)。
|
出典は列挙するだけでなく、脚注などを用いてどの記述の情報源であるかを明記してください。
|
SIGN関数が、負のゼロを扱えるよう Fortran 95 で変更された。(0 から転送)
出典: フリー百科事典『ウィキペディア(Wikipedia)』 (2025/10/18 19:41 UTC 版)
|
|
この記事は検証可能な参考文献や出典が全く示されていないか、不十分です。 (2017年2月)
|
数学においてゼロ除算(ゼロじょさん、ゼロじょざん、0除算、英語: division by zero)とは、0で除す割り算のことである。このような除算は、除される数をaとすると、形式的に a/0と書くことができるが、このような式を矛盾なく定義することはできない。一方、コンピュータプログラムの計算においてゼロ除算が発生した場合、大抵はエラーとなって計算処理が中断されてしまう為、一般的には0による除算が起こらないように設計される。
現代数学の観点では、いかなるアプローチから定義を試みようとも必ず破綻に至る。結局、「値を定義し得ないため、計算は不可能である」と理解する他ない概念であり、それ以上の議論によって数学的に有用な結果が得られることは期待できない。しかし、概念自体は極めて初等的な知識で捉えることができるため、しばしば数学的原則を前提としていない議論や独自な解釈が展開されることがある。そのような議論や解釈はいずれも論理的破綻を含むか信頼性のある根拠を伴わない為、学術的な評価の余地をほとんど有しない。
ゼロ除算の定義可能性に関する誤った理解の典型としては、例えば![]()
直観的に a/0 は a/b で 正数b を 0 に漸近させたときの極限を考えることで定義されるように見える。
a が正の数の場合、次のようになる。
リーマン球面は、複素平面に無限遠点 ∞ の1点を付け加えて得られるもの C ∪ {∞} である。上記実射影直線(射影拡大実数)の複素数版とも考えられる。リーマン球面は複素解析において重要な概念であり、演算は例えば 1/0 = ∞、1/∞ = 0、などとなるが、∞+∞ や 0/0 は定義されない[12]。
ゼロ除算をしたときのコンピュータの挙動は整数演算の場合と浮動小数点数演算の場合で異なる[13]。したがって、整数演算の場合と浮動小数点数演算の場合で分けて説明する。
コンピュータにおける整数のゼロ除算では結果を表す方法がなく、多くのプロセッサは整数のゼロ除算を実行しようとすると 《例外》 を発生させる。(なおIntel 8086の場合、商がレジスタに格納できる数値を越えている場合にもゼロ除算した時と同様の例外が発生する[14][15])。この例外に対する対処がなされていない場合、ゼロ除算を実行しようとしたプログラムは強制終了(アボート)されてしまう。これは、ゼロ除算が 《 エラー 》 と解釈されるためで、エラーメッセージが表示されることも多い[16]。
他方、浮動小数点演算の場合は、次のようなことが起きる。
なおゼロ除算が生じた場合にそのマシンで表現可能な最大値に + /- の符号も考慮した上で置き換えて処理を続行することを推奨している本もある[24]。
なお、浮動小数点数演算の規格であるIEEE 754では、全ての浮動小数点数演算が定義されており、ゼロ除算も例外ではなく、どういう値になるか(どういう値を返すべきか)が定義されている。IEEE 754の定義によれば、a/0 で a が正の数であれば、除算の結果は正の無限大となり、a が負の数であれば負の無限大となる[25]。そして、a も 0 であった場合、除算結果は NaN(not a number、数でない)となる[26]。IEEE 754 には −0 も定義されているため、0 の代わりに −0 で除算をした場合は、上述の符号が反転する[25]。 IEEE 754は現在、ほとんどのコンピュータでサポートされている[25]。
1997年、民生品の応用を研究していたアメリカ海軍は、タイコンデロガ級ミサイル巡洋艦「ヨークタウン」を改造して主機のガスタービンエンジンの制御にマイクロソフトのソフトウェアを採用したが、試験航行中にデータベースのゼロ除算が発生してソフトウェアが《例外》を返し、結果として主機が停止、回復するまでカリブ海を2時間半ほど漂流する事態となってしまった[27]。
(0 から転送)
出典: フリー百科事典『ウィキペディア(Wikipedia)』 (2024/12/20 14:09 UTC 版)
ヌル文字(ヌルもじ、英: null character)またはヌル終端文字(ヌルしゅうたんもじ、英: null terminator)は、値0の制御文字である。NULと表記される場合もある[1]。nullの英語での発音はヌルよりナルに近いため、ナル文字と呼ばれることもある[注釈 1]が、ここでは記事名に準じてヌル文字と表記する。
多くの文字集合にはヌル文字の定義がある。ISO/IEC 646(ASCII)、C0制御コード、C1制御コード、ISO/IEC 10646(Unicode)、EBCDICなどの文字集合は全てヌル文字を含んでいる。一方で、JIS X 0208などのように、これを収録しない文字集合もある。ASCII、Unicode、EBCDICなどではヌル文字はコードポイント0に当てられている。多くのプログラミング言語ではヌル文字を使用できる[2]。C言語などでは、ヌル文字のコードは0であると定義されている。
ヌル文字は元々NOPと似たような意味で利用されていた。プリンターや端末にヌル文字を送っても何も起こらない(スペースとして表示するターミナルもあるがこれは誤り)。テレタイプ端末をコンピュータの出力デバイスとして使う際には、各行の末尾にヌル文字を(場合によっては複数)送信することで、機械的な印字機構が行頭に戻るための時間を稼いでいた[要出典]。
紙テープではヌル文字は穴のない行として表現される(新品の紙テープは全てヌル文字で埋められていると考えてもよい)。この場合、穴のない行に新しく文字をパンチすることで、ヌル文字で埋められている箇所に文字を「挿入」できる。
通例文字列は文字の配列によって実現されるが、ヌル文字は主にC言語とその派生言語の1つであるC++、および各種のデータフォーマットにおいて、文字列の終端を表す文字として重要な役割を担っている[5]。つまり、文字列の最後の文字の次にヌル文字を置くことで番兵の役割を持たせている。このような形式の文字列は一般的にヌル終端文字列(null-terminated string)と呼ばれ、さらに1バイト単位でエンコーディングされている場合はヌル終端バイト文字列(null-terminated byte string)と呼ばれる[6]。GNU版のfindやxargsでは、複数のファイル名をヌル文字で区切ることで、ホワイトスペースが含まれるファイル名を正しく扱えるようにするオプションがある[7][8]。
このような特殊性もあってヌル文字を含むデータを正しくハンドリングできない処理系もあり、たとえばCascading Style Sheets 2.1においては、(エスケープによって生成したものを含めて)スタイルシートにヌル文字が含まれる場合の動作は未定義としている[9]。一般的なテキストファイル(プレーンテキスト)形式では、ヌル文字が含まれることはない。
Javaや.NETに代表される、モダンなプログラミング言語およびプログラミング環境では、文字配列によるバッファのほかに文字列の長さ情報を併せ持つカプセル化されたデータ構造によって文字列を表現し、ヌル文字は終端の役割を持たない。この方式では、文字列の途中にヌル文字を含むことも可能である。
ソースコードの文字列リテラル中では、ヌル文字は\0のようなエスケープシーケンスの形で表記されることが多い[10]。
多くの言語(この記法を導入したC言語を含む)では、これはヌル文字専用のエスケープシーケンスではないため注意が必要である。これは8進数で文字を表現しているだけであるため、\0の後に0から7の数字を続けて書くと、8進数2桁の数で表される文字として解釈されてしまう[注釈 2]。
\0以外の表記方法として\000や\x00を使うプログラミング言語もある。Unicodeにおいては\u0000または\zがヌル文字を表す表現として用いられる。URL中に(特にユーザー入力由来の)ヌル文字が現れる場合は%00で置き換えられるが、これは「ヌルバイトインジェクション」と呼ばれる攻撃に対するセキュリティホールになるのを避けるためである[11]。
キャレット記法ではヌル文字は^@で表わされる。US配列キーボードには、Ctrlを押したまま@を入力するとヌル文字を入力できるものがある(US配列の場合@を入力するには⇧ Shiftを押しながら2やPを押下する)。ヌル文字をCtrl2やCtrlspaceで入力できる場合もある[要出典]。
文書中では、ヌル文字を1em幅の"NUL"と書かれたシンボルで表現することがある(組文字)。Unicodeにはこれに対応するグリフとして"symbol for null"(U+2400, ␀)があるが、あくまで"NUL"を表現するためだけのもので、これと実際のヌル文字(U+0000)は別物であるため注意が必要である。
| 記号 | Unicode | JIS X 0213 | 文字参照 | 名称 |
|---|---|---|---|---|
| � | U+0000 |
|
�� |
ヌル文字 |
| ␀ | U+2400 |
|
␀␀ |
symbol for null |
出典: フリー百科事典『ウィキペディア(Wikipedia)』 (2018/07/12 05:21 UTC 版)
「ロケットマン (加藤元浩)」の記事における「0(ゼロ)」の解説
マンゴールドが送り込んだSクラスの殺し屋。気配を消して相手に近づく。サイのような武器を使用する。
※この「0(ゼロ)」の解説は、「ロケットマン (加藤元浩)」の解説の一部です。
「0(ゼロ)」を含む「ロケットマン (加藤元浩)」の記事については、「ロケットマン (加藤元浩)」の概要を参照ください。