Senin, 28 Februari 2011

Java Bitwise operator

/**
 * @(#)Bitwise.java
 *
 *
 * @author mr frans rudolf banjarnahor
 * @version 1.00 2011/2/27
 */

public class Bitwise {
       
    /**
     * Creates a new instance of <code>Bitwise</code>.
     */
    public Bitwise() {
    }
   
    /**
     * @param args the command line arguments
     */
    public static void main(String[] args) {
        // dapat diaplikasi kan pada tipe data int, long, short, char,dan byte untuk melakukan operasi pada bilangan biner(bit)
        //Bitwise logik or(|)  and(&) not(~) xor(^)

//      A    B    A | B        A & B         A ^ B         ~A
//        0    0    0            0             0             1
//        1    0    1            0             1             0
//        0    1    1            0             1             1
//        1    1    1            1             0             0
       
        Byte [] A = {0,1,0,1};
        Byte [] B = {0,0,1,1};
        System.out.println("Logical AND");
        int i=0;
        System.out.println("A\t&\tB\tA&B");
        for (Byte x:A)
        {
            System.out.println(x +"\t\t"+B[i]+"\t"+(x&B[i]));
            i++;
        }
       
        System.out.println("");
        System.out.println("Logical OR");
        System.out.println("A\t&\tB\tA&B");
        i=0;
        for (Byte x:A)
        {
            System.out.println(x +"\t\t"+B[i]+"\t"+(x|B[i]));
            i++;
        }
       
        System.out.println("");
        System.out.println("Logical XOR");
        System.out.println("A\t&\tB\tA&B");
        i=0;
        for (Byte x:A)
        {
            System.out.println(x +"\t\t"+B[i]+"\t"+(x^B[i]));
            i++;
        }
       
        System.out.println("");
        System.out.println("Logical NOT");
        System.out.println("A\t~A");
        i=0;
        for (byte x:A)
        {
            System.out.println(x+"\t"+(~x));
            i++;
        }
       
        System.out.println("");
        System.out.println("Shift LEFT artinya geser kekiri sejumlah y bit");
        Integer X = 2;
        Integer y = 2;
        System.out.println("X="+X+"(biner)\t\t\ty\t\tX<<y");
        System.out.println(Integer.toBinaryString(X) + "\t\t\t\t" + y + " bit\t\t" +  Integer.toBinaryString(X<<y) + "(" + (X<<y) + " int)");
       
       
        System.out.println("");
        System.out.println("Shift LEFT artinya geser kekiri sejumlah y bit");
        X = 64;
        y = 4;
        System.out.println("X="+X+"(biner)\t\t\ty\t\tX>>y");
        System.out.println(Integer.toBinaryString(X) + "\t\t\t" + y + " bit\t\t" +  Integer.toBinaryString(X>>y) + "(" + (X>>y) + " int)");
       
       
    }
}

hasil:
Logical AND
A   &   B   A&B
0       0   0
1       0   0
0       1   0
1       1   1

Logical OR
A   |   B   A|B
0       0   0
1       0   1
0       1   1
1       1   1

Logical XOR
A   ^   B   A^B
0       0   0
1       0   1
0       1   1
1       1   0

Logical NOT
A   ~A
0   -1
1   -2
0   -1
1   -2

Shift LEFT artinya geser kekiri sejumlah y bit
X=2(biner)          y       X<<y
10              2 bit       1000(8 int)

Shift RIGHT artinya geser kekanan sejumlah y bit
X=64(biner)         y       X>>y
1000000         4 bit       100(4 int)

Tidak ada komentar:

Posting Komentar