boolean [] M = {false, true, true, false,false, false}; /*เทียบเหมือนกับ BINARY 011000*/
boolean [] S = {true, false, true, true, false, false}; /*เทียบเหมือนกับ BINARY 1011100*/
boolean [] result = new boolean [M.length]; /*สร้างตัวแปร Array ชนิด boolean ขึ้นมาชื่อว่า result ไว้เก็บค่า M^S*/
boolean [] translate = new boolean [M.length]; /*สร้างตัวแปร Array ชนิด boolean ขึ้นมาชื่อว่า translate ไว้เก็บค่าตัวที่พิจารณา*/
boolean [] MS = new boolean [M.length]; /*สร้างตัวแปร Array ชนิด boolean ขึ้นมาชื่อว่า MS ไว้เก็บค่าคำตอบ*/
int i; /*ประกาศตัวแปร i ขึ้นมาเป็นจำนวนเต็ม ซึ่งเป็นตัวแปรแบบ local variable*/
boolean z = false; /*สร้างตัวแปรชนิด boolean ที่ชื่อว่า z ให้มีค่าเป็นเท็จ*/
int d = 46; /*เส้นผ่านศูนย์กลางของวงกลมแต่ละอัน*/
int x = d; /*ประกาศตัวแปร x ขึ้นมาเป็นจำนวนเต็ม ให้มีค่าเท่ากับ d ( local variable)*/
int y = 50; /*ประกาศตัวแปร y ขึ้นมาเป็นจำนวนเต็ม ให้มีค่าเท่ากับ 50 ( local variable)*/
for(i = M.length-1; i >= 0; i--) { /*ให้ค่าเริ่มต้นของ i = M.length-1 ตรวจสอบเงื่อนไขว่า i >= 0 หรือไม่ ทุกครั้งก่อนออกจาก loop i นำค่าที่เข้ามาลบไปทีละ 1*/
result[i] = M[i]^S[i]; /*นำค่า M[i]^S[i] มาใส่ในตัวแปร result[i]*/
if(M[i]&S[i] == true) { /*M[i]&S[i] เป็น true หรือไม่*/
if(i-1 >= 0) { /*i-1 มากกว่าหรือเท่ากับ 0 หรือไม่*/
translate[i-1] = false; /*กำหนดให้ translate ตัวที่ i-1 มีค่าเป้น false*/
} else z = true; /*ให้ z = true*/
}
println(result[i]);
}