CSC231 Bitwise Logical Operators in Java
--D. Thiebaut 23:38, 9 October 2012 (EDT)
public class Demo1 {
final static byte START = 0x01;
final static byte PHASE1 = 0x02;
final static byte PHASE2 = 0x04;
final static byte PHASE3 = 0x08;
final static byte DONE = 0x10;
/**
* @param args
*/
public static void main(String[] args) {
byte status = START;
System.out.println( "Status = " + String.format( "%8s", Integer.toBinaryString(status) ).replace(' ', '0') );
for ( int i = 0; i< 100; i++ ) {
if ( Math.random() < 0.1 ) status = (byte) (status | PHASE1);
else if ( Math.random() < 0.1 ) status = (byte) (status ^ PHASE1);
else if ( Math.random() < 0.1 ) status = (byte) (status ^ PHASE2);
else if ( Math.random() < 0.1 ) status = (byte) (status ^ PHASE3);
else if ( Math.random() < 0.1 ) status = (byte) (status ^ DONE);
System.out.println( "Status = " + String.format( "%8s", Integer.toBinaryString(status) ).replace(' ', '0') );
if ( (status & DONE) != 0)
break;
}
}
}