某掲示板での質問(ビット)
Friday, March 3, 2006 9:05:43 AM
Keigoです。
今後の事も考えこのようなスレを立てさせていただきました。
日記にもアップしましたが相手にされそうもないのでこちらでも質問させてください。
なお、コピペで失礼します。
-------------------------------------------------------------------------------
ビット演算子がチンプンカンプン。ググってみてもCに結びついて余計にわからない。
そんな中この表で演算子の意味はわかった。
要は2進数という言葉にこだわらずにON、OFFで考えると簡単だった。
0101 & 0011 = 0001 0101 | 0011 = 0111 0101 ^ 0011 = 0110 ~0101 = 1010 0101 << 1 = 1010 0101 >> 1 = 0010で、このコードの意味がわからない。 改訂新版 基礎PHPより抜粋*1
$a=5; /* 0101 */ $b=9; /* 1001 */ $c=1; /* 0001 */ print (($a & $b)."<br />"); /* 0001 */ print (($a | $b)."<br />"); /* 1101 */ print (($a ^ $b)."<br />"); /* 1100 */ print ((~$a)."<br /">); /* 1010 */ print (($a << $c)."<br /">); /* 1010 */ print (($a >> $c)); /* 0010 */結果は
1 13 12 -6 10 2コメント部分はわかりますがなぜ結果がそうなるのかが理解できません。 アドバイスお願いします。 ちなみにあまり必要ないからわからなくてもいいよっていうのもOKです。 わからないまま先に進みたくないだけです。




