JavaでHello World
Google
  HOME  |  基礎  |  掲示板  |  ツール |  書籍  |  デザインパターン  |  リンク  |  フィードバック
JavaでHello World > Javaの基礎 > ビット演算子編  
メニュー
Home
情報交換掲示板
ツールの部屋
Java関連の書籍
変数編
文字列編
文字列の連結編
部分文字列編
文字列の比較編
文字列の長さ編
文字列バッファ編
代入演算子編
算術演算子編
演算子の簡略化編
インクリメント/デクリメント
比較演算子編
論理演算子編
ビット演算子編
シフト演算子編
三項演算子編
演算子の優先順位編
配列
多次元配列
ifステートメント
if elseステートメント
forループ
whileループ
doループ
switchステートメント
breakステートメント
continueステートメント
  2004/10/23  田中宏和
ビット演算子編
◆演算子とは?
プログラミングにおいて、演算方法を指示する記号のことです。演算の対象となる値や変数はオペランドといい、「x + 100」の場合「+」が演算子で、「x」、「100」がオペランドです。
◆ここでの環境
OS Windows XP
J2SE SDK 1.4.2_04
◆ビット演算子
ビット演算子とは変数に格納されたデータのビットを直接操作するための演算子のことです。
ビット演算子
使用例
説明
& x & y xとyが整数型の場合、xとyのビットごとのAND演算を行う
| x | y xとyが整数型の場合、xとyのビットことのOR演算を行う
^ x^y xとyが整数型の場合、xとyのビットごとのXOR演算を行う
~ ~x xが整数型の場合、xのビットごとのNOT演算を行う
■AND演算( & )
論理積演算とも呼ばれます。入力されたビットが両方とも1の場合に1を出力する演算です。
入力1
入力2
出力
0 0 0
0 1 0
1 0 0
1 1 1
■OR演算( | )
論理和演算とも呼ばれます。入力されたビットのいずれかが1の場合に1を出力する演算です。
入力1
入力2
出力
0 0 0
0 1 1
1 0 1
1 1 1
■XOR演算( ^ )
排他的論理和演算とも呼ばれます。入力された2つのビットが異なっていた場合1を出力する演算です。
入力1
入力2
出力
0 0 0
0 1 1
1 0 1
1 1 0
■NOT演算( ~ )
論理否定演算とも呼ばれます。入力されたビットを反転して出力する演算です。
入力
出力
0 1
1 0
 
■サンプルプログラム
Enzanshi7.java(ここからダウンロード)
public class Enzanshi7 {
  public static void main(String[] args) {
    byte b1 = 3; // ビット表現 00000011
    byte b2 = 9; // ビット表現 00001001
    int i1 = b1 & b2; // i1のビット表現 00000000 00000000 00000000 00000001
    int i2 = b1 | b2; // i2のビット表現 00000000 00000000 00000000 00001011
    int i3 = b1 ^ b2; // i3のビット表現 00000000 00000000 00000000 00001010
    int i4 = ~b1;     // i4のビット表現 11111111 11111111 11111111 11111100
    System.out.println("i1の値は " + i1 + " です。");
    System.out.println("i2の値は " + i2 + " です。");
    System.out.println("i3の値は " + i3 + " です。");
    System.out.println("i4の値は " + i4 + " です。");  }
}
■コンパイルと実行
コマンドプロンプト

C:\JavaHello\Basic\Operator>javac Enzanshi7.java

C:\JavaHello\Basic\Operator>java Enzanshi7
i1の値は 1 です。
i2の値は 11 です。
i3の値は 10 です。
i4の値は -4 です。

C:\JavaHello\Basic\Operator>

おおお!ビット演算ができましたね!
 
■書籍
Java関連の書籍
 
  ネットで買えば断然お得!お買い物なら楽天市場
ツールの部屋 - Java関連の書籍 - デザインパターン - 情報交換掲示板 - HOME