グレイコードとバイナリの相互変換関数を書きました。おそらく最高速. グレイコードというのは、2進表現なのに値が1変わるのに1Bitしか変わらない(つまり、2進数のときの 7:0111 -> 8:1000 というようなことがない)という不思議な数。GAとか、1Bitの情報的価値が等しいことが望ましい用途で使う。 13/01/23 追記 コメントでワタナベさんに指摘していただきましたが、今は英語版Wikipediaに載っているコードのほうが速いです。 unsigned long Binary2Gray(long b){ unsigned long tmp=0; tmp|=b; return tmp^(tmp>>1); } long Gray2Binary(unsigned long num){ long tmp=0; tmp|=num; while(num){ num>>=1; tmp^=nu