各ビットはブラウザの暗号エンジンから独立して生成されます。256 通りの値が、それぞれ等しい確率で出現します。
2進数はすべての値を0と1のわずか2つの記号で表現します。ゴットフリート・ヴィルヘルム・ライプニッツは1679年に現代の2進法を体系化し、1703年にその研究成果を発表しました。これは古代中国の易経の六十四卦のパターンに一部影響を受けたものです。ライプニッツは2進法を根本的な論理への窓と捉えました:あらゆる複雑な量を最も単純な構成要素に分解するものです。3世紀後、その同じ分解原理が地球上のすべてのデジタルシステムの基盤となっています。
ビットが1つ増えるごとに、取りうる値の数は2倍になります。1ビットは2つの状態を区別します。8ビット(1バイト)は256通りの異なるパターンを生み出し、すべてのASCII文字をエンコードするのに十分です。16ビットは65,536通りの値に達します。32ビットは40億以上に及び、IPv4アドレス空間全体をカバーします。64ビットは1,844京(18.4×1018)に達し、同じ64ビット値をランダムに2回生成する確率は、コップ1杯の水から特定の原子を選び出す確率よりも低いほどです。2進数の指数関数的な成長が現代のコンピューティングを実現可能にしています:控えめな数の物理スイッチが天文学的な数の表現可能な状態を生み出します。
2進数は位取り記数法です。最も右のビットは20(つまり1)を表します。左に1桁進むごとに値は2倍になります:21 = 2、22 = 4、23 = 8、と続きます。2進数文字列 10110100 は10進数で 128 + 32 + 16 + 4 = 180 に等しくなります。16進数(基数16)はコンパクトな代替表記を提供します:4ビットのグループが1つの16進数字(0からF)に対応します。同じ 10110100 は 0xB4 になります。上のグリッドの下に両方の変換結果が表示され、生成のたびにリアルタイムで更新されます。
このツールは crypto.getRandomValues()(W3Cが策定したWeb Cryptography API)を使用して、すべてのビットを同時に生成します。各ビット位置は、オンラインバンキングや暗号化通信を保護するのと同じハードウェアエントロピープールから取得されます。各ビットは統計的に独立しています:任意のサブセットの値を知っても、残りのビットに関する情報は一切得られません。サーバーはこのページを配信しますが、エントロピーはあなたのデバイスが提供します。ビット文字列がブラウザの外に出ることは決してありません。
2進数文字列は基数変換演習の理想的な入り口です。/binary で8ビット文字列を生成し、学生に手動で10進数と16進数に変換させましょう。グリッドの下に表示されるリアルタイムの値と比較してください。確率の演習として、クラスで50個の文字列を生成し、収束グラフを観察しましょう:サンプルが増えるにつれて1の割合が50%付近に収束していきます。より上級のグループには /binary/16 や /binary/32 に増やしてみてください。
URLでビット長を定義します。1から64の任意の値を入力できます:
このリンクを送信してください。同じビット長で、相手独自のランダム文字列が生成されます。パターンを比較してみましょう。
日々のインスピレーション
A' Design Awardの審査員が選んだ作品を毎朝お届けします。