マンガで分かる Java入門講座

第4章 数値変数と演算子
4-8B. [コラム] ビット演算子

初心者にはちょっと高度な「ビット演算子」を紹介します。

● ビット演算子

 booleanの値に対して計算を行う、論理演算という方法を学びました。

 「ビット演算」は、整数の数値を2進数として見て、各桁(bit)の1をtrue、0をfalseとみなして、各bitごとに論理演算を行う計算方法です。

 ビット演算は、シフト演算同様、少し難しい計算ですので、プログラムにまだ不慣れな人は読み飛ばしてください。

 ビット演算では、論理演算と同じ記号(一部違う記号がある)を利用します。これらの記号を「ビット演算子」と呼びます。

 まずは、分かりやすいように、ビット演算の&の計算を示します。

説明)AND演算の計算例
  5  =    0 | 1 | 0 | 1
& 9  =  & 1 | 0 | 0 | 1
――――――――――――
  1  =    0   0   0   1

 10進数の5は2進数では101になります。10進数の9は二進数では1001になります。この各桁を比較して、両方が1の場合に1、それ以外は0として計算を行います。その結果、2進数の1が結果として求まります。

 2進数の1は、10進数でも1です。そのため「5 & 9 = 1」という結果が求まります。

 以下、ビット演算子を紹介します。

表)ビット演算子
演算子使い方名前計算内容
&a & bAND(論理和)ビットが両方1なら1、それ以外は0
|a | bOR(論理積)ビットの片方でも1なら1、それ以外は0
^a ^ bXOR(排他的論理和)2つのビットが異なるなら1、同じなら0
~~aNOT(否定)ビットを反転

 ~演算は少し分かり難いと思いますので、例を示します。

説明)NOT演算の計算例
~ 255  =  00000000 00000000 00000000 11111111
―――――――――――――――――――――――――
 -256  =  11111111 11111111 11111111 00000000

この講座のマンガ部分は「箱人形マンガ(Box Comic) 」で作成しています。
作成:2013/05/20  更新:2015/08/08  [Permalink]

クロクロ・ショップ
特殊な技術書多数あります
レトロ風RPG フルスクラッチ開発 全コード
レトロゲーム風RPGの全コードを掲載して解説した本
HTML5とJavaScriptで作る 落ち物パズルゲーム 全コード
『テトリス』や『ぷよぷよ』に類似した落ち物パズルゲームの全コードを掲載して解説した本
JavaScriptでリバーシゲームをつくろう
ライブラリを使わずに全コードを書いて、リバーシゲームを作るまでを徹底解説
ワールドマップ自動生成読本
二次元ゲームのワールドマップを自動生成するための本
レトロゲームファクトリー
過去のゲームを最新機に移植する会社のお仕事小説(新潮社)
顔貌売人 ハッカー探偵 鹿敷堂桂馬
プログラマーが探偵役のエンタメ・ミステリー第2弾 最先端の情報犯罪に安藤と鹿敷堂が挑みます(文藝春秋)
裏切りのプログラム ハッカー探偵 鹿敷堂桂馬
プログラマー鹿敷堂桂馬が、女性社長の安藤裕美と共に、IT業界で起きた事件に挑む。2016年の松本清張賞の最終候補作(文藝春秋)
×