Difference between revisions of "CSC231 Bitwise Logical Operators in Java"
(Created page with "--~~~~ ---- <source lang="java"> public class Demo1 { final static byte START = 0x01; final static byte PHASE1 = 0x02; final static byte PHASE2 = 0x04; final static byte PH...") |
(→Example of Output) |
||
(2 intermediate revisions by the same user not shown) | |||
Line 1: | Line 1: | ||
--[[User:Thiebaut|D. Thiebaut]] 23:38, 9 October 2012 (EDT) | --[[User:Thiebaut|D. Thiebaut]] 23:38, 9 October 2012 (EDT) | ||
---- | ---- | ||
+ | =Source= | ||
<source lang="java"> | <source lang="java"> | ||
public class Demo1 { | 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 = " + toBinary8( status ) ); | ||
− | + | 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 = " + toBinary8( status ) ); | |
− | + | if ( (status & DONE) != 0) | |
− | + | break; | |
− | + | } | |
− | + | } | |
− | + | ||
− | + | private static String toBinary8( byte x ) { | |
− | + | return String.format( "%8s", Integer.toBinaryString(x) ).replace(' ', '0'); | |
− | + | } | |
− | |||
− | |||
− | |||
− | |||
− | |||
} | } | ||
Line 35: | Line 38: | ||
<br /> | <br /> | ||
<br /> | <br /> | ||
+ | |||
+ | =Example of Output= | ||
+ | javac Demo1.java | ||
+ | java Demo1 | ||
+ | |||
+ | Status = 00000001 | ||
+ | Status = 00000001 | ||
+ | Status = 00000001 | ||
+ | Status = 00000001 | ||
+ | Status = 00000001 | ||
+ | Status = 00000001 | ||
+ | Status = 00000011 | ||
+ | Status = 00001011 | ||
+ | Status = 00001011 | ||
+ | Status = 00001011 | ||
+ | Status = 00011011 | ||
+ | |||
<br /> | <br /> | ||
<br /> | <br /> | ||
<br /> | <br /> | ||
[[Category:CSC231]][[Category:Java]] | [[Category:CSC231]][[Category:Java]] |
Latest revision as of 10:25, 10 October 2012
--D. Thiebaut 23:38, 9 October 2012 (EDT)
Source
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 = " + toBinary8( status ) );
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 = " + toBinary8( status ) );
if ( (status & DONE) != 0)
break;
}
}
private static String toBinary8( byte x ) {
return String.format( "%8s", Integer.toBinaryString(x) ).replace(' ', '0');
}
}
Example of Output
javac Demo1.java java Demo1 Status = 00000001 Status = 00000001 Status = 00000001 Status = 00000001 Status = 00000001 Status = 00000001 Status = 00000011 Status = 00001011 Status = 00001011 Status = 00001011 Status = 00011011