Q-boのドットコード解析(拡張フォルダー)
2018年7月9日
Q-boはドットコードでは5ビットでフォルダーを表していると書きましたが実はそれより上位のドットコードでも別のフォルダーを表せます。
5ビットで表せるフォルダーは32ですがそりより上位の18ビットでもフォルダーを表せるのでフォルダーの数は32×262144でQ-boのドットコードでは8,388,608のフォルダーが定義できます。
7番目と8番目のドットコード

ドットコードの7番目と8番目の数字で上記の橙部分を表しています。
本文の説明同様、Q-boのぼうけんの最初のページの本文を例に説明します。
このドットコードは4165-1616-0361-7252で有効な2ビットで表すと2032-0303-0130-3121となり上記に該当する数字は03となります。
今回も4ビット2桁の数字を逆から読みます。
30となり16進数で表すとCとなります。

この部分の数字の変換は上記のテーブルを使います。(1番目と2番目の数字の変換に用いたものと同じ)
C(12)に対応する値は4となります。
この部分のパリティの計算は両方の数字のXORを計算して計算結果が0の場合、2として2の場合、0とします。
1と3の場合は計算結果そのままの値です。
9番目と10番目のドットコード

ドットコードの9番目10番目の数字で上記の橙部分を表しています。
ロビのぼうけんのドットコードの場合2032-0303-0130-3121となり上記に該当する数字は01となります。
4ビット2桁の数字を逆から読むと10となり16進数で表すと4となります。

この部分の数字の変換は上記のテーブルを使います。
4に対応する値は2となります。
この部分のパリティの計算は両方の数字のXORを計算して9番目の値が1の場合、10番目と3のXORを計算して3の場合、10番目と1のXORを計算してその結果にします。
0と2の場合は計算結果そのままの値です。
11番目と12番目のドットコード

ドットコードの11番目12番目の数字で上記の橙部分を表しています。
ロビのぼうけんのドットコードの場合2032-0303-0130-3121となり上記に該当する数字は30となります。
4ビット2桁の数字を逆から読むと03となり16進数で表すと3となります。

この部分の数字の変換は上記のテーブルを使います。
3に対応する値は0となります。
この部分のパリティの計算は両方の数字のXORを計算して12番目の値が1の場合、11番目と3のXORを計算して3の場合、11番目と1のXORを計算してその結果にします。
2と4の場合は計算結果そのままの値です。
13番目と14番目のドットコード

ドットコードの13番目14番目の数字で上記の橙部分を表しています。
ロビのぼうけんのドットコードの場合2032-0303-0130-3121となり上記に該当する数字は31となります。
4ビット2桁の数字を逆から読むと13となり16進数で表すと7となります。

この部分の数字の変換は上記のテーブル(11,12番目と同じ)を使います。
7に対応する値は4となります。
この部分のパリティの計算は両方の数字のXORを計算して14番目の値が0の場合、13番目と2のXORを計算して2の場合、13番目と0のXORを計算してその結果にします。
1と3の場合は計算結果そのままの値です。
15番目のドットコード

ドットコードの15番目の数字で上記の橙部分を表しています。
ロビのぼうけんのドットコードの場合2032-0303-0130-3121となり上記に該当する数字は2となります。

この部分の数字の変換は上記のテーブルを使います。
2に対応する値は0となります。
この部分のパリティの計算は値が1の場合、3として3の場合、1とします。
0と2の場合はそのままの値です。
最終的なフォルダー番号
本編でフォルダー番号の下位5ビットは求めていますのでこれと合わせます。

0×2097152+4×131072+0×8192+2×512+4×32+3×2+1=525447となりフォルダー名の下6文字と一致します。
本編に戻る