วันพฤหัสบดีที่ 25 กรกฎาคม พ.ศ. 2556

Binary Calculation

Binary Calculation For True/False

สำหรับรูปนี้ ในตอนแรกผมกำหนดตัวแปรให้มีค่าต่างๆ เป็นชุดๆ หนึ่ง ทั้งหมดสองชุด แล้วจึงกำหนด Array ที่ตัวแปรเหล่านี้นำไปใช้แทนมาอีกสองชุด รวมทั้ง Array ที่ใช้สำหรับแสดงผลลัพธ์ต่างๆ ออกมา แล้วหลังจากนั้นจึงกำหนดตัวแปรสำหรับการหาค่านี้ไปเรื่อยๆ แล้วจึงสร้างเงื่อนไขสำหรับตรวจสอบใน loop โดยใช้ฟังก์ชั่น for และ if ซ้อนกันสองเงื่อนไข หลังจากจึงกำหนดฟังก์ชั่น for สำหรับตรวจสอบเงื่อนไขใน loop อีกครั้ง แล้วกำหนดฟังก์ชั่นให้แสดงผลลัพธ์ออกมาทางจอ สำหรับเรื่องนี้ ผมก็อธิบายได้เท่านี้ ถ้าลอง Run บน blog แล้วจะเห็นเป็นตัวเลข แต่ถ้าลอง Run ในโปรแกรมที่สร้าง Code จะเห็นเป็นตัวอักษร ขอเชิญทุกคนลองทำกันดู เพื่อให้เข้าใจกันเองได้มากขึ้น

Processing Code

int CN1 [] = {1, 1, 0, 1, 0, 0, 0, 1, 1};
int CN2 [] = {1, 0, 1, 0, 1, 0, 1, 0, 0};  /*ประกาศ Array 2 ชุดโดยให้ตัวเลขพวกนี้สามารถแทนค่าของ Array ชนิด boolean 2 ชุดข้างล่างนี้ในภายหลัง*/
boolean G [] = {true, false, false, true, true, false, false};  /*Binary (110100011)*/
boolean H [] = {false, true, false, true, false, true, false};  /*Binary (101010100)*/
boolean result [] = new boolean [G.length];  /*สร้างตัวแปร Array ชนิด boolean ขึ้นมาชื่อว่า result ไว้เก็บค่า G^H*/
int i;  /*ประกาศตัวแปร i ขึ้นมาเป็นจำนวนเต็ม ซึ่งเป็นตัวแปรแบบ Global variable*/  

for(i = G.length-1; i >= 0; i--) {   /*ให้ค่าเริ่มต้นของ i = G.length-1 ตรวจสอบเงื่อนไขว่า i >= 0 หรือไม่ ทุกครั้งก่อนออกจาก loop i ลบไปทีละ 1*/
  result[i] = G[i]^H[i];  /*นำค่า G[i]^H[i]มาใส่ในตัวแปร result[i]*/
  if(G[i] == false&&H[i] == true) {   /*G[i] เป็นเท็จ และ H[i] เป็นจริงหรือไม่*/
    if(i-1 >= 0) {  /*i-1มากกว่าหรือเท่ากับ 0 หรือไม่ ถ้าใช่ G[i-1] เป็นเท็จ*/
    G[i-1] = false;
    }
  }
}

for(i = 0; result.length > i; i++)  /*ให้ค่าเริ่มต้นของ i = 0 ตรวจสอบเงื่อนไขว่า i น้อยกว่าความยาวของ result หรือไม่ ทุกครั้งก่อนออกจาก loop i บวกเพิ่มไปทีละ 1*/
println(result[i]);  //แสดงค่า result[i] ที่ได้ออกมาทางจอ โดยการพิมพ์ค่าออกมา

Canvas

110100011 
101010100
    0100010
 

ไม่มีความคิดเห็น:

แสดงความคิดเห็น