前の2進数の復習も兼ねて?
判定式:
( ( ( (ID上位2バイト)xor(ID下位2バイト) )xor(性格値上位2バイト) )xor(性格値下位2バイト) )
が7以下なら色違いになります
http://no2.pic.bz/document/char.html
2バイトは16進数で4桁(0x0000~0xFFFF)、2進数で16桁(0000 0000 0000 0000~1111 1111 1111 1111)のこと。
xorは繰り上がりがない計算記号。A xor B = C (AとBの2進数の各桁が違うならCは1、同じならCは0)
2進数の000~111は、10進で0~7のこと。
(略(
上の判定算は結局、最後の"xor(性格値下位2バイト) "で決まることが分かる。
なので、
性格値上位2バイトまでの計算結果はなんでもいいのでQ、
性格値下位2バイトの対応する桁のQに合わせる部分をAとして2進数で書くと。
性格値上位2バイトまでの計算結果 | QQQQ QQQQ QQQQ QQQQ |
性格値下位2バイト | AAAA AAAA AAAA AQQQ |
xorした結果(目標) | 0000 0000 0000 0QQQ |
(例)
A | 1111 0000 1111 0000 |
B | 0000 1111 0000 1000 |
C(AxorB) | 0000 0000 0000 0111 |
この今までの計算結果に合わせなければいけない!の部分が13箇所あり、!は0か1かの1/2なので、
となる。