2016.03.26
Javaプログラミング
ビット演算子
00000000 … 8bit
00000000 00000000 … 16bit
00000000 00000000 00000000 00000000 … 32bit
①AND(論理積)
両方のビットが1であれば1、それ以外は0にします。
下図は、int型(32bit)の14と5をAND演算した例で、32桁の各桁ごとにAND演算を行っています。1桁目の演算結果を右のAND演算の表と対応付けています。
②OR(論理和)
どちらか片方のビットが1であれば1、それ以外は0にします。
下図は、int型(32bit)の14と5をOR演算した例で、32桁の各桁ごとにAND演算を行っています。1桁目の演算結果を右のOR演算の表と対応付けています。
③XOR(排他的論理和)
2つのビットが異なっていれば1、それ以外は0にします。
下図は、int型(32bit)の14と5をXOR演算した例で、32桁の各桁ごとにXOR演算を行っています。1桁目の演算結果を右のXOR演算の表と対応付けています。
④NOT(否定)
ビットが1なら0、0なら1にします。
下図は、int型(32bit)の14をNOT演算した例で、32桁の各桁ごとにNOT演算を行っています。1桁目の演算結果を右のNOT演算の表と対応付けています。
Javaソースコード
BitOperator.java
001 002 003 004 005 006 007 008 009 010 011 012 013 014 015 016 017
public class BitOperator { public static void main( String[] args ) { int a = 14; // 2進数 1110 int b = 5; // 2進数 0101 int and = a & b; // AND int or = a | b; // OR int xor = a ^ b; // XOR int not = ~a; // NOT //結果を表示 System.out.println( a + " AND " + b + " = " + and ); System.out.println( a + " OR " + b + " = " + or ); System.out.println( a + " XOR " + b + " = " + xor ); System.out.println( "NOT " + a + " = " + not ); } }
コンパイル ソースコードが「ANSI」の場合
C:\talavax\javasample>javac -encoding sjis BitOperator.java
コンパイル ソースコードが「UTF-8」の場合
C:\talavax\javasample>javac BitOperator.java
実行
C:\talavax\javasample>java BitOperator
出力結果
14 AND 5 = 4 14 OR 5 = 15 14 XOR 5 = 11 NOT 14 = -15
Javaソースコードの解説
ここからは、このソースコードを上から順番に解説していきます。
001
public class BitOperator {
クラス名を、BitOperatorとしています。
002
public static void main( String[] args ) {
このmainメソッドからプログラムを実行します。
003 004
int a = 14; // 2進数 1110 int b = 5; // 2進数 0101
006 007 008
int and = a & b; // AND int or = a | b; // OR int xor = a ^ b; // XOR
変数aとbをAND、OR、XORで演算しています。
009
int not = ~a; // NOT
011 012 013 014 015
//結果を表示 System.out.println( a + " AND " + b + " = " + and ); System.out.println( a + " OR " + b + " = " + or ); System.out.println( a + " XOR " + b + " = " + xor ); System.out.println( "NOT " + a + " = " + not );
最後に演算結果を表示しています。
以上です。
次のコンテンツ
関連コンテンツ
2値化は、画像処理の1つの方法で、カラー画像を2つ色だけで表現する画像に変換することです。この記事では、2値の画像メモリを使って変換しています。
一般に使われている画像フォーマットには、いろいろな種類があります。画像フォーマットBMP、JPEG、PNG、GIF、TIFFの特徴を知ってますか?