PHPサンプル
UPDATE:2017年04月01日
ビット演算子を利用したい
1 Minute Note
& | ビットAND(論理積) | | | ビットOR(論理和) |
^ | ビットXOR(排他論理和) | ~ | ビット否定 |
<< | 左シフト | >> | 右シフト |
- ビット演算子 は、整数値をビット値で演算
- ビット は、コンピュータが処理する最小単位
- ビット は、2進数の 0 と 1 に対応している
ビット演算子を利用したい
ビットとは、コンピュータが処理する最小の単位です。ビット演算子は、オペランド(演算の対象となる値や変数のこと)の整数値をビット(2進数)に表現し、特定のビットを評価し演算を行います。つまり、整数値をビット値で演算します。
ビットは2進数の 0 と 1 に対応しています。コンピュータでは通常、8ビット(1バイト)を1つの単位として扱い、1バイトは、0 から2進数の11111111(10進数の255)までが表現可能です。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 | <!-- サンプルコード --> <h3>ビットAND(論理積)</h3> <?php $a = 3;$b = 35; echo $a & $b; ?> <h3>ビットOR(論理和)</h3> <?php $a = 3;$b = 35; echo $a | $b; ?> <h3>ビットXOR(排他論理和)</h3> <?php $a = 3;$b = 35; echo $a ^ $b; ?> <h3>ビット否定</h3> <?php $a = intval('1100', 2); printf("%064b", $a); echo '<br>'; printf("%064b", ~$a); ?> <h3>左シフト</h3> <?php $a = intval('1111', 2); $b = intval('0001', 2); echo decbin($a << $b); ?> <h3>右シフト</h3> <?php $a = intval('1111', 2); $b = intval('0001', 2); echo decbin($a >> $b); ?> <h3>bindec() 2進数を10進数に変換する</h3> <?php echo bindec(100011); ?> <h3>decbin() 10進数を2進数に変換する</h3> <?php echo decbin(35); ?> |
実行結果
ビットAND(論理積)
3
3
ビットOR(論理和)
35
ビットXOR(排他論理和)
32
ビット否定
0000000000000000000000000000000000000000000000000000000000001100
1111111111111111111111111111111111111111111111111111111111110011
左シフト
11110
右シフト
111
bindec() 2進数を10進数に変換する
35
decbin() 10進数を2進数に変換する
100011
タグ(=記事関連ワード)
タグ: PHPサンプル
日付
投稿日:2014年2月21日
最終更新日:2017年04月01日
最終更新日:2017年04月01日
このカテゴリの他のページ
この記事へのコメント
トラックバックurl
https://wepicks.net/phpsample-operators-bitwise/trackback/