コンピューター用語としてよく登場するバイナリー。
実行ファイル(exe)のことをバイナリ―と呼んだり、二分探索をバイナリ―サーチと呼んだり、2進数のことをバイナリ―と呼んだり、VBAでテキストの大文字小文字を区別して比較するときのモードがバイナリー比較と呼んだりする。
一見関連なさそうなこれらの要素が「バイナリー」という同じ言葉で呼ばれているのは不思議に思われるかもしれない。
バイナリーの由来
バイナリーという言葉の由来はラテン語のbinarius(2つの)である。
したがってバイナリーという単語で呼ばれるものは何かしら「2」という数字にまつわるエピソードを持っている。
ちなみにあまり知られていないがbinaryという英単語には以下のような兄弟もいる。
0 … nullary
1 … unary
2 … binary
3 … ternary
4 … quaternary
5 … quinary
6 … senary
7 … septenary
8 … octonary
9 … novenary
10 … denary
これで二分探索と2進数がバイナリーと呼ばれるのは納得できたと思う。
実行ファイルの場合
実行ファイル(exe)はCやC++、VBなどのプログラミング言語で作られる。
プログラムを書いた段階ではまだただのテキストファイルである。これをコンピューターが理解できる形に変換することをコンパイルという。
コンパイルされると実行ファイル(exe)やdllファイルが作成されるが、これは機械語で書かれている。
機械語というのは0と1の羅列、つまり2進数である。
バイナリーファイルと呼ばれたり、コンパイルしたプログラムの出力先がbinフォルダだったりするのはこれが由来である。
VBAのテキスト比較の場合
次のコードを実行すると、標準ではFalseとなる。
Sub test() MsgBox "a" = "A" End Sub
小文字のaと大文字のAは別物だからだ。
これをバイナリー比較という。
次のようにOption Compare Textをモジュールの先頭に追記すると、そのモジュールはテキスト比較になり、結果はTrueとなる。
Option Compare Text Sub test() MsgBox "a" = "A" End Sub
小文字でも大文字でも同じ「エー」とみなす。
これをテキスト比較という。
いちおうOption Compare Binaryというオプションもあるが、こちらが標準なのでわざわざ書く必要はない。
コンピューター上の文字にはすべて番号が振られており、Aは65、aは97である。
内部では2進数で扱われており、これを比較して異なる文字とみなすため、バイナリー比較と呼ばれる。
65→1000001
97→1100001