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

อาร์เรย์ (Array)

อาร์เรย์ (Array) 
          คือ ตัวแปรชุด หรือการเก็บข้อมูลประเภทหนึ่ง โดยการนำชนิดข้อมูลพื้นฐาน มาเก็บในรูปแบบแถวลำดับ โดยมีเลขกำกับในสมาชิกแต่ละตัวในแถวลำดับ

-การประกาศอาร์เรย์
     ชนิดของตัวแปร [] ชื่อของอาร์เรย์ = new ชนิดของตัวแปร [จำนวนแถวลำดับ];
เช่น int [] a = new int [5]; คือ อารเรย์ชื่อ a มีจำนวนแถวลำดับเท่ากับ 5

-การกำหนดอาร์เรย์
     ชนิดของตัวแปร [] ชื่อของอาร์เรย์ = {ค่าลำดับที่1,ค่าลำดับที่2,...,ค่าลำดับที่n};
หรือ  ชื่อของอาร์เรย์ [ลำดับ n ของอาร์เรย์] = ค่าของอาร์เรย์ลำดับที่ n;
*การนำลำดับในอาร์เรย์จะเริ่มที่ 0 ดังนั้น ลำดับในอาร์เรย์จะเท่ากับจำนวนอาร์เรย์ - 1
เช่น int [] a = {1,2,3}; 
หรือ a[0] = 1;
    a[1] = 2;
    a[2] = 3;
คือ อาร์เรย์ชื่อ a มีจำนวนแถวลำดับเท่ากับ 3
โดยลำดับที่ 0 มีค่าเท่ากับ 1  
   ลำดับที่ 1 มีค่าเท่ากับ 2 
   ลำดับที่ 2 มีค่าเท่ากับ 3

-การเรียกใช้อาร์เรย์
     ชื่อของอาร์เรย์ [ลำดับ n ของอาร์เรย์];
เช่น a[i]; คือ การเรียกใช้อาร์เรย์ชื่อ a ลำดับที่ i

*ชื่ออาร์เรย์.length คือ ค่าความยาวของอาร์เรย์ 
เช่น int [] a = new int [4];
    int b = a.length; //ค่า b จะเท่ากับความยาวของอาร์เรย์ a ซึ่งเท่ากับ 4

ตัวอย่างการใช้อาร์เรย์(Array) ใน Lab5

เลขฐานสอง

     เลขฐานสอง มีตัวเลข 2 ตัว คือ 0 และ 1
ตัวอย่างการหาเลขฐานสอง
                หาเลขฐานสองของ 10
                                     เศษ
               10  หาร  2          0           (10/2 ได้ 5 นำไปหารในหลักต่อไป)
                5   หาร  2          1           (5/2 ได้ 2 นำไปหารในหลักต่อไป)
                2   หาร  2          0           (2/2 ได้ 1 นำไปหารในหลักต่อไป)
                1   หาร  2          1           (1/2 ได้ 0)
*ให้เรียงเลขฐานสองจากล่างขึ้นบน
จะได้เลขฐานสองของ 10 ซึ่งเท่ากับ 1010

การบวก ลบ เลขฐานสอง

การบวกเลขฐานสอง
หลักในการบวกเลขฐานสองมีดังนี้
          1 + 1 = 0 และมีตัวทดเท่ากับ 1 เพื่อนำไปบวกในหลักต่อไป
          1 + 0 = 1 และมีตัวทดเท่ากับ 0
          0 + 1 = 1 และมีตัวทดเท่ากับ 0
          0 + 0 = 0 และมีตัวทดเท่ากับ 0
          *ในหลักแรกตัวทดเท่ากับ 0
วิธีคิด
 -นำจำนวนเลขฐานสองมาตั้งให้ตรงหลัก
 -ทำการบวกเลขในหลักนั้นๆ ถ้าผลบวกในตำแหน่งใดมีการทด 1 ให้นำไปบวกกับหลักถัดไป
ตัวอย่าง          1010 + 0011
วิธีทำ          0100   ตัวทด
                 1010
                        +
                 0011 
    ผลลัพธ์   1101
การลบเลขฐานสอง
หลักในการลบเลขฐานสองมีดังนี้
          1 - 1 = 0
          1 - 0 = 1 
          0 - 1 = 1 ยืมมาจากหลักที่สูงกว่ามา 1
          0 - 0 = 0 
          *ในการยืมตัวเลขมา 1 จะทำให้ตัวเลขในหลักที่ถูกยืมลดลง 1 ถ้าตัวเลขที่ถูกยืมถัดไปมีค่าเท่ากับ 0 ให้ยืมหลักถัดไปที่มี 1 จะทำให้เลขที่ถูกยืมเป็น 0 และเลข 0 ที่ไม่สามารถยืมได้นั้นจะมีค่าเท่ากับ 1
ตัวอย่าง          1010 - 0101
วิธีทำ          0101  
                 1010
                        -
                 0101 
    ผลลัพธ์   0101

สมการ XOR

สมการ XOR คือ ((!A)||B) && (A||(!B))
                    A     B     A XOR B 
                    0     0          0
                    0     1          1
                    1     0          1
                    1     1          0

ฟังก์ชันคำสั่ง(System Function)ที่ใช้ในLab5

ฟังก์ชันคำสั่ง(System Function)ที่ใช้ในLab5
          size() คือ ฟังก์ชันที่กำหนดขนาดของoutput การนำไปใช้ size(ความกว้าง,ความยาว);
          background() คือ ฟังก์ชันที่กำหนดสีของพื้นหลัง การนำไปใช้ background(สี);
          fill() คือ ฟังก์ชันที่กำหนดสี การนำไปใช้ fill(สี);
          noStroke() คือ ฟังก์ชันไม่ใส่เส้นขอบ การนำไปใช้ noStorke();
          rect() คือ ฟังก์ชันสร้างรูปสี่เหลี่ยม การนำไปใช้ rect(พิกัดx,พิกัดy,ความกว้างของสี่เหลี่ยม,ความสูงของรูปสี่เหลี่ยมผืนผ้า);
          ellipse() คือ ฟังก์ชันสร้างรูปทรงวงรี การนำไปใช้ ellipse(พิกัดx,พิกัดy,เส้นผ่านศูนย์กลางด้านกว้าง,เส้นผ่านศูนย์กลางด้านยาว);
          text() คือ ฟังก์ชันตัวอักษร การนำไปใช้ text("คำที่กำหนด",พิกัดx,พิกัดy);
          textSize() คือ ฟังก์ชันขนาดตัวอักษร การนำไปใช้ text(ค่าของขนาดที่ต้องการ);
          max() คือ ฟังก์ชันค่าสูงสุด การนำไปใช้ max(ค่า1,ค่า2,...,ค่าn); จะแสดงค่าที่สูงสุดใน()

          min() คือ ฟังก์ชันค่าสต่ำสุดใน การนำไปใช้ min(ค่า1,ค่า2,...,ค่าn); จะแสดงค่าที่ต่ำสุดใน()
          random() คือ ฟังก์ชันสุ่มค่าตัวเลข การนำไปใช้ random(ค่าที่ต้องการสุ่มถึง); จะทำการสุ่มถึงค่าที่ต้องการสุ่มถึง หรือ random(ค่า1,ค่า2);จะทำการสุ่มตั้งแต่ค่า1 ถึงค่า2
        
ทดลองเขียนโปรแกรม http://processingjs.org/tools/processing-helper.html

การหาค่าต่ำสุด ค่าสูงสุด และค่าเฉลี่ย








CODE
  int [] b = {55,35,45,80,20};          //สร้าง Array ชื่อ b ที่มีข้อมูล 5 ตัว เพื่อเก็บค่าตัวเลขในแต่ละลำดับ
  int i,min,max,sumb;          //ประกาศค่าตัวแปร
  while(i<b.length){          //ถ้าค่าตัวแปร i น้อยกว่าความยาวของ Array ชื่อ b (ซึ่งเท่ากับ 5)
    if(i==0){          //ถ้าค่าตัวแปร i เท่ากับ 0
      min = b[0];          //ให้ค่าตัวแปร min เท่ากับ Array ชื่อ b ที่ลำดับ 0
      max = b[0];          //ให้ค่าตัวแปร max เท่ากับ Array ชื่อ b ที่ลำดับ 0
    }
    if(b[i]<=min){          //ถ้าค่าตัวแปร i น้อยกว่าหรือเท่ากับ ค่าของตัวแปร min
      min = b[i];          //ให้ค่าตัวแปร min เท่ากับ Array ชื่อ b ที่ลำดับ i
    }
    if(b[i]>=max){          //ถ้าค่าตัวแปร i มากกว่าหรือเท่ากับ ค่าของตัวแปร max
      max = b[i];          //ให้ค่าตัวแปร max เท่ากับ Array ชื่อ b ที่ลำดับ i
    }
    sumb = sumb + b[i];          //ให้ตัวแปร sumb มีค่าเท่ากับ sumb บวกกับ Array ชื่อ b ที่ลำดับ i
    i = i + 1;          //ให้ i เพิ่มทีละ 1 เพื่อเลื่อนลำดับใน Array
  }
  int avrb = sumb/b.length;          //ให้ค่าตัวแปร avrb เท่ากับ ค่า sumb หารด้วยความยาวของ Array ชื่อ b (ซึ่งเท่ากับ 5)
          //แสดงค่าสูงสุด,ต่ำสุด,เฉลี่ย
  println("Minimum = " + min);
  println("Maximum = " + max);
  println("Average = " + avrb);


จากโค้ด  ค่าใน Array ชื่อ b จาก int [] b = {55,35,45,80,20}; จะได้
                                                  Minimum = 20
                                                  Maximum = 80
                                                  Average = 47
             ถ้าเปลี่ยนค่าใน Array ชื่อ b จาก int [] b = {55,35,45,80,20}; เป็น int [] b = {50,45,20,10,5}; จะได้                  Minimum =5
                                                  Maximum = 50
                                                  Average =26






Lab5:Circle





CODE
 void setup(){
  size(250,280);
  background(0);
  int [] a = {1,1,2,3,1};          //สร้าง Array ชื่อ a ที่มีค่าเท่ากับ 1,1,2,3,1 ตามลำดับ
  int x = 30;
  int y = 40;
  int r = 50;
  int i = 0;          //ตัวแปร i เท่ากับ 0 (ลำดับ 0 ใน Array)
  int n = 5;
  while(i<n){          //ถ้าลำดับ i ใน Array ชื่อ a น้อยกว่าค่า n (ซึ่งเท่ากับ 5)
    drawRow(x, y, a[i], r);          //ให้สร้างฟังก์ชันชื่อ drawRow(x,y,a[i],r)
    y = y + r;          //เพิ่มค่า y ทีละ r (ซึ่งเท่ากับเพิ่มทีละ 50)
    i = i + 1;          //เพิ่มค่า i ทีละ 1 เพื่อเลื่อนลำดับใน Array
  }
}

void drawRow(int x1, int y1, int n1, int r1) {          //เรียกใช้ฟังก์ชัน drawRow(int x1,int y1,int n1,int r1) เพื่อสร้างแถวของวงกลม
  int i = 0;          //ตัวแปร i เท่ากับ 0 (ลำดับ 0 ใน Array)
  while (i < n1) {          //ถ้าตัวแปร i น้อยกว่าค่า n1 (ซึ่งเท่ากับค่าใน Array ชื่อ a ที่มีค่าเท่ากับ 1,1,2,3,1 ตามลำดับ )
    drawCircle(x1, y1, r1);          //ให้สร้างฟังก์ชันชื่อ drawCircle(x1,y1,r1)
    x1 = x1 + r1;          //เพิ่มค่า x1 ทีละ r1 (ซึ่งเท่ากับเพิ่มทีละ 50) เพื่อเว้นระยะห่างของวงกลม
    i = i + 1;          //เพิ่มค่า i ทีละ 1
  }
}

void drawCircle(int x2, int y2, int r2) {          //เรียกใช้ฟังก์ชัน drawCircle(int x2,int y2,int r2) เพื่อสร้างวงกลม
  noStroke();
  fill(50+y2,50+(6*y2),100+(5*y2));
  ellipse(x2, y2, r2, r2);
}

จากโค้ด  ค่าใน Array จาก int [] a = {1,1,2,3,1}; จะทำให้ได้วงกลมแถวละ 1,1,2,3,1 ตามลำดับ
             ถ้าเปลี่ยนค่าใน Array จาก int [] a = {1,1,2,3,1}; ไปเป็น int [] a = {2,3,4,3,2}; จะทำให้ได้วงกลมแถวละ 2,3,4,3,2 ตามลำดับ จะได้ดังรูป



Bar chart




CODE
int [] a = {55,35,45,80,20};          //สร้าง Array ชื่อ a ที่มีข้อมูล 5 ตัว เพื่อเก็บค่าตัวเลขในแต่ละลำดับ
int x = 25;          //ตัวแปร x เท่ากับ 25
int y = 350;          //ตัวแปร y เท่ากับ 350
int i = 0;          //ตัวแปร i เท่ากับ 0 (ลำดับที่ 0 ใน Array)
void setup(){
  size(325,460);
  background(0);
          //แสดงคำอธิบาย
  fill(247,32,36);          //red
  text("-Maximum",x,400);
  fill(25,96,245);          //blue
  text("-Minimum",x,420);
  fill(252,252,5);          //yellow
  text("-Average",x,440);
 
  while(i<a.length){          //ถ้าค่าตัวแปร i น้อยกว่าความยาวของ Array ชื่อ a (ซึ่งเท่ากับ 5)
          //แสดงแท่งแผนภูมิที่เป็นค่าสูงสุด
    if(a[i] == max(a)){         //ถ้า Array ชื่อ a ในลำดับ i มีค่าเท่ากับ ค่าสูงสุดใน Array ชื่อ a
      fill(247,32,36);          //red
      println("Max = " + a[i]);
      textSize(15);
      text(a[i],x,y+20);
    }
    else if(a[i] == min(a)){         //ถ้า Array ชื่อ a ในลำดับ i มีค่าเท่ากับ ค่าต่ำสุดใน Array ชื่อ a
          //แสดงแท่งแผนภูมิที่เป็นค่าต่ำสุด
      fill(25,96,245);          //blue
      println("Min = " + a[i]);
      textSize(15);
      text(a[i],x,y+20);
    }
          //แสดงแท่งแผนภูมิอื่นๆที่ไม่เป็นค่าสูงสุดและค่าต่ำสุด
    else{         //กรณีอื่นๆ ที่ Array ชื่อ a ในลำดับ i ที่มีค่าไม่เท่ากับ ค่าสูงสุดและต่ำสุดใน Array ชื่อ a
      fill(49,245,25);          //green
      textSize(15);
      text(a[i],x,y+20);
    }
    noStroke();
    rect(x,y,20,(-4)*a[i]);
    i = i + 1;
    x = x + 50;
  }
          //แสดงแท่งแผนภูมิที่เป็นค่าเฉลี่ย
  int avra = (a[0]+a[1]+a[2]+a[3]+a[4])/a.length;          //ตัวแปร avra มีค่าเท่ากับ Array ชื่อ a ที่มีลำดับตั้งแต่ 0 ถึง 4 นำมารวมกันแล้วหารด้วยความยาวของ Array ชื่อ a (ซึ่งมีค่าเท่ากับ 5)
  noStroke();
  fill(252,252,5);          //yellow
  rect(x,y,20,avra*(-4));
  println("Avr = " + avra);
  textSize(15);
  text(avra,x,y+20);
}

จากโค้ด  ถ้าเปลี่ยนค่าใน Array ชื่อ a จาก int [] a = {55,35,45,80,20}; เป็น int [] a = {50,45,20,10,5}; จะได้ดังรูป



Binary calculation (การบวกเลขฐานสอง)




CODE 
int num1 = 10;          //ค่าตัวเลข1
int num2 = 2;          //ค่าตัวเลข2
int [] n1 = new int [4];          //สร้าง Array ชื่อ n1 ที่มีข้อมูล 4 ตัว(4 bit) เพื่อเก็บค่าเลขฐานสองของ num1
int i1 = 3;          //ให้ตัวแปร i1 เท่ากับ 3 (ลำดับที่ 3 ใน Array)
int [] n2 = new int [4];          //สร้าง Array ชื่อ n2 ที่มีข้อมูล 4 ตัว(4 bit) เพื่อเก็บค่าเลขฐานสองของ num2
int i2 = 3;          //ให้ตัวแปร i2 เท่ากับ 3 (ลำดับที่ 3 ใน Array)
          //แสดงตัวเลขที่นำมาบวก
println(num1 + " + " + num2 + " = " );

          //ค่าเลขฐานสอง ของ num1
while(i1>=0){          //ถ้าค่าตัวแปร i1 มากกว่าหรือเท่ากับ 0
   n1[i1] =  num1%2;          //Array ชื่อ n1 ลำดับที่ i1 มีค่าเท่ากับ เศษเหลือของ num1 หาร 2
   if(num1%2!=0){          //ถ้าเศษเหลือของ num1 หาร 2 ไม่เท่ากับ 0
   num1 = num1-1;          //ให้ num1 มีค่าลดลง 1
   }
   else if(num1==1){          //แต่ถ้า num1 เท่ากับ 1
   num1 = 2;         //ให้ num1 เท่ากับ 2
   }
*สร้างเงื่อนไข if(num1%2!=0) และ else if(num1==1)  เนื่องจากถ้าหาร 2 ไม่ลงตัวจะทำให้ num1/2 ในบรรทัดล่างติดค่าทศนิยม  และเมื่อทำซ้ำต่อไปก็จะได้ค่าเศษเหลือเป็นเลขทศนิยม
   num1 =  num1/2;          //ให้ num1 มีค่าเท่ากับ num1 หาร 2 เพื่อนำค่ามาทำซ้ำเพื่อหาเศษเหลือในลำดับต่อไป
   i1 = i1 - 1;          //ให้ i1 ลดลง 1 เพื่อเลื่อนลำดับใน Array
}

          //ค่าเลขฐาน2 ของnum2
while(i2>=0){          //ถ้าค่าตัวแปร i2 มากกว่าหรือเท่ากับ 0
   n2[i2] =  num2%2;          //Array ชื่อ n2 ลำดับที่ i2 มีค่าเท่ากับ เศษเหลือของ num2 หาร 2
   if(num2%2!=0){          //ถ้าเศษเหลือของ num2 หาร 2 ไม่เท่ากับ 0
   num2 = num2-1;          //ให้ num2 มีค่าลดลง 1
   }
   else if(num2==1){          //แต่ถ้า num2 เท่ากับ 1
   num2 = 2;         //ให้ num2 เท่ากับ 2
   }
*สร้างเงื่อนไข if(num2%2!=0) และ else if(num2==1)  เนื่องจากถ้าหาร 2 ไม่ลงตัวจะทำให้ num2/2 ในบรรทัดล่างติดค่าทศนิยม  และเมื่อทำซ้ำต่อไปก็จะได้ค่าเศษเหลือเป็นเลขทศนิยม
   num2 =  num2/2;          //ให้ num2 มีค่าเท่ากับ num2 หาร 2 เพื่อนำค่ามาทำซ้ำเพื่อหาเศษเหลือในลำดับต่อไป
   i2 = i2 - 1;          //ให้ i2 ลดลง 1 เพื่อเลื่อนลำดับใน Array
}
          //แสดงตัวเลขฐานสองที่นำมาบวก
println(n1 + " + ");
println(n2 + " = ");
          //ตัวทด
int []c = new int [4];          //สร้าง Array ชื่อ c ที่มีข้อมูล 4 ตัว(4 bit) เพื่อเก็บค่าเลขฐานสองของ c (ตัวทด)
int ic = 0;          //ให้ตัวแปร ic เท่ากับ 0 (ลำดับที่ 0 ใน Array)
while(ic<c.length){          //ถ้าค่าตัวแปร ic น้อยกว่าความยาวของ Array ชื่อ c (ซึ่งเท่ากับ 4)
  if((n1[ic]==0)&&(n2[ic]==0)){          //ถ้าค่าของตัวแปร n1,n2 ในลำดับที่ ic เท่ากับ 0
    c[ic-1] = 0;          //ให้ค่าตัวแปรใน Array ชื่อ c ในลำดับที่ ic - 1 เท่ากับ 0
  }
  else if((n1[ic]==1)&&(n2[ic]==0)){          //ถ้าค่าของตัวแปร n1 ในลำดับที่ ic เท่ากับ 1,n2 ในลำดับที่ ic เท่ากับ 0
    c[ic-1] = 0;          //ให้ค่าตัวแปรใน Array ชื่อ c ในลำดับที่ ic - 1 เท่ากับ 0
  }
  else if((n1[ic]==0)&&(n2[ic]==1)){          //ถ้าค่าของตัวแปร n1 ในลำดับที่ ic เท่ากับ 0,n2 ในลำดับที่ ic เท่ากับ 1
    c[ic-1] = 0;          //ให้ค่าตัวแปรใน Array ชื่อ c ในลำดับที่ ic - 1 เท่ากับ 0
  }
  else if((n1[ic]==1)&&(n2[ic]==1)){          //ถ้าค่าของตัวแปร n1,n2 ในลำดับที่ ic เท่ากับ 1
    c[ic-1] = 1;          //ให้ค่าตัวแปรใน Array ชื่อ c ในลำดับที่ ic - 1 เท่ากับ 1
  }
  ic = ic + 0;          //เพิ่มค่า ic ทีละ 1 เพื่อเลื่อนลำดับใน Array
}
*boolean เป็นชนิดของตัวแปรที่มี 2 ค่า คือ true และ false
          //เปลี่ยนค่าเลขฐานสองของ num1 เป็น true,false
boolean []b1 = new boolean [4];          //สร้าง Array ชื่อ b1 ที่มีข้อมูล 4 ตัว(4 bit) เพื่อเก็บค่า true,false ของ num1
int ib1 = 0;          //ให้ตัวแปร ib1 เท่ากับ 0 (ลำดับที่ 0 ใน Array)
while(ib1<b1.length){          //ถ้าค่าตัวแปร ib1 น้อยกว่าความยาวของ Array ชื่อ b1 (ซึ่งเท่ากับ 4)
  if(n1[ib1]==0){         //ถ้าค่าของตัวแปร n1 ในลำดับที่ ib1 เท่ากับ 0
    b1[ib1] = false;          //ให้ใน Array ชื่อ b1 ในลำดับที่ ib1 เท่ากับ false
  }
  else if(n1[ib1]==1){         //ถ้าค่าของตัวแปร n1 ในลำดับที่ ib1 เท่ากับ 1
    b1[ib1] = true;          //ให้ใน Array ชื่อ b1 ในลำดับที่ ib1 เท่ากับ true
  }
  ib1 = ib1 + 1;          //เพิ่มค่า ib1 ทีละ 1 เพื่อเลื่อนลำดับใน Array
}
          //เปลี่ยนค่าเลขฐานสองของ num2 เป็น true,false
boolean []b2 = new boolean [4];          //สร้าง Array ชื่อ b2 ที่มีข้อมูล 4 ตัว(4 bit) เพื่อเก็บค่า true,false ของ num2
int ib2 = 0;          //ให้ตัวแปร ib2 เท่ากับ 0 (ลำดับที่ 0 ใน Array)
while(ib2<b2.length){          //ถ้าค่าตัวแปร ib2 น้อยกว่าความยาวของ Array ชื่อ b2 (ซึ่งเท่ากับ 4)
  if(n2[ib2]==0){         //ถ้าค่าของตัวแปร n2 ในลำดับที่ ib2 เท่ากับ 0
    b2[ib2] = false;          //ให้ใน Array ชื่อ b2 ในลำดับที่ ib2 เท่ากับ false
  }
  else if(n2[ib2]==1){         //ถ้าค่าของตัวแปร n2 ในลำดับที่ ib2 เท่ากับ 1
    b2[ib2] = true;          //ให้ใน Array ชื่อ b2 ในลำดับที่ ib2 เท่ากับ true
  }
  ib2 = ib2 + 1;          //เพิ่มค่า ib2 ทีละ 1 เพื่อเลื่อนลำดับใน Array
}
          //เปลี่ยนค่าเลขฐานสองของตัวทด เป็น true,false
boolean [] bc = new boolean [4];          //สร้าง Array ชื่อ bc ที่มีข้อมูล 4 ตัว(4 bit) เพื่อเก็บค่า true,false ของตัวทด
int ibc = 0;          //ให้ตัวแปร ibc เท่ากับ 0 (ลำดับที่ 0 ใน Array)
while(ibc<bc.length){          //ถ้าค่าตัวแปร ibc น้อยกว่าความยาวของ Array ชื่อ bc (ซึ่งเท่ากับ 4)
  if(c[ibc]==0){         //ถ้าค่าของตัวแปร c ในลำดับที่ ibc เท่ากับ 0
    bc[ibc] = false;          //ให้ใน Array ชื่อ bc ในลำดับที่ ibc เท่ากับ false
  }
  else if(c[ibc]==1){         //ถ้าค่าของตัวแปร c ในลำดับที่ ibc เท่ากับ 1
    bc[ibc] = true;          //ให้ใน Array ชื่อ bc ในลำดับที่ ibc เท่ากับ true
  }
  ibc = ibc + 1;          //เพิ่มค่า ibc ทีละ 1 เพื่อเลื่อนลำดับใน Array
}

          //ผลลัพธ์ที่ยังไม่รวมตัวทด
เป็น true,false
boolean [] r = new boolean [4];          //สร้าง Array ชื่อ r ที่มีข้อมูล 4 ตัว(4 bit) เพื่อเก็บค่า true,false ของผลลัพธ์ที่ยังไม่รวมตัวทด
int ir = 0;          //ให้ตัวแปร ir เท่ากับ 0 (ลำดับที่ 0 ใน Array)
while(ir<r.length){          //ถ้าค่าตัวแปร ir น้อยกว่าความยาวของ Array ชื่อ r (ซึ่งเท่ากับ 4)
   r[ir] = ((!b1[ir])&&b2[ir])||(b1[ir]&&(!b2[ir]));          //หาค่าตัวแปรใน Array ชื่อ r ที่ลำดับ ir โดยจะเท่ากับ b1[ir] XOR b2[ir]
   ir = ir + 1;          //เพิ่มค่า ir ทีละ 1 เพื่อเลื่อนลำดับใน Array
}

          //ผลลัพธ์ที่รวมตัวทดเป็น true,false
boolean [] r1 = new boolean [4];          //สร้าง Array ชื่อ r1 ที่มีข้อมูล 4 ตัว(4 bit) เพื่อเก็บค่า true,false ของผลลัพธ์ที่รวมตัวทด
int ir1 = 0;          //ให้ตัวแปร ir1 เท่ากับ 0 (ลำดับที่ 0 ใน Array)
while(ir1<r1.length){          //ถ้าค่าตัวแปร ir1 น้อยกว่าความยาวของ Array ชื่อ r1 (ซึ่งเท่ากับ 4)
   r1[ir1] = ((!bc[ir1])&&r[ir1])||(bc[ir1]&&(!r[ir1]));          //หาค่าตัวแปรใน Array ชื่อ r1 ที่ลำดับ ir1 โดยจะเท่ากับ bc[ir1] XOR r[ir1]
   ir1 = ir1 + 1;          //เพิ่มค่า ir1 ทีละ 1 เพื่อเลื่อนลำดับใน Array
}

          //ผลลัพธ์ที่รวมตัวทดเป็นตัวเลข
int [] r2 = new int [4];          //สร้าง Array ชื่อ r2 ที่มีข้อมูล 4 ตัว(4 bit) เพื่อเก็บค่าของผลลัพธ์ที่รวมตัวทดเป็นตัวเลข
int ir2 = 0;          //ให้ตัวแปร ir2 เท่ากับ 0 (ลำดับที่ 0 ใน Array)
while(ir2<r2.length){          //ถ้าค่าตัวแปร ir2 น้อยกว่าความยาวของ Array ชื่อ r2 (ซึ่งเท่ากับ 4)
   if(r1[ir2]==true){          //ถ้าตัวแปรใน Array ชื่อ r1 ลำดับที่ ir2 มีค่าเท่ากับ true
      r2[ir2] = 1;          //ให้ค่าตัวแปรใน Array ชื่อ r2 ลำดับที่ ir2 มีค่าเท่ากับ 1
   }
   if(r1[ir2]==false){          //ถ้าตัวแปรใน Array ชื่อ r1 ลำดับที่ ir2 มีค่าเท่ากับ false
      r2[ir2] = 0;          //ให้ค่าตัวแปรใน Array ชื่อ r2 ลำดับที่ ir2 มีค่าเท่ากับ 0
   }
ir2 = ir2 + 1;          //เพิ่มค่า ir2 ทีละ 1 เพื่อเลื่อนลำดับใน Array
}
          //แสดงค่าผลลัพธ์เลขฐานสอง
println(r2);


จากโค้ด  จะได้   10 + 2 =
                       1,0,1,0 - 
                       0,0,1,0 = 
                       1,1,0,0
             ถ้าเปลี่ยนค่าตัวเลข1 และตัวเลข2 จะทำให้ได้ผลลัพธ์ที่แตกต่างกันออกไปตามการคำนวณของเลขฐานสอง
ตัวอย่าง  เปลี่ยนค่าตัวเลข1 เท่ากับ 5 จะได้   5 + 2 =
                                                           0,1,0,1 -
                                                           0,0,1,0 =
                                                           0,1,1,1


Binary calculation (การลบเลขฐานสอง)




CODE
size(280,150);
background(250);

int num1 = 10;          //ค่าตัวเลข1
int num2 = 2;          //ค่าตัวเลข2
int [] n1 = new int [4];          //สร้าง Array ชื่อ n1 ที่มีข้อมูล 4 ตัว(4 bit) เพื่อเก็บค่าเลขฐานสองของ num1
int i1 = 3;          //ให้ตัวแปร i1 เท่ากับ 3 (ลำดับที่ 3 ใน Array)
int [] n2 = new int [4];          //สร้าง Array ชื่อ n2 ที่มีข้อมูล 4 ตัว(4 bit) เพื่อเก็บค่าเลขฐานสองของ num2
int i2 = 3;          //ให้ตัวแปร i2 เท่ากับ 3 (ลำดับที่ 3 ใน Array)
          //แสดงตัวเลขที่นำมาลบ
println(num1 + " - " + num2 + " = " );

          //ค่าเลขฐานสอง ของ num1
while(i1>=0){          //ถ้าค่าตัวแปร i1 มากกว่าหรือเท่ากับ 0
   n1[i1] =  num1%2;          //Array ชื่อ n1 ลำดับที่ i1 มีค่าเท่ากับ เศษเหลือของ num1 หาร 2
   if(num1%2!=0){          //ถ้าเศษเหลือของ num1 หาร 2 ไม่เท่ากับ 0
   num1 = num1-1;          //ให้ num1 มีค่าลดลง 1
   }
   else if(num1==1){          //แต่ถ้า num1 เท่ากับ 1
   num1 = 2;         //ให้ num1 เท่ากับ 2
   }
*สร้างเงื่อนไข if(num1%2!=0) และ else if(num1==1)  เนื่องจากถ้าหาร 2 ไม่ลงตัวจะทำให้ num1/2 ในบรรทัดล่างติดค่าทศนิยม  และเมื่อทำซ้ำต่อไปก็จะได้ค่าเศษเหลือเป็นเลขทศนิยม
   num1 =  num1/2;          //ให้ num1 มีค่าเท่ากับ num1 หาร 2 เพื่อนำค่ามาทำซ้ำเพื่อหาเศษเหลือในลำดับต่อไป
   i1 = i1 - 1;          //ให้ i1 ลดลง 1 เพื่อเลื่อนลำดับใน Array
}
          //ค่าเลขฐาน2 ของnum2
while(i2>=0){          //ถ้าค่าตัวแปร i2 มากกว่าหรือเท่ากับ 0
   n2[i2] =  num2%2;          //Array ชื่อ n2 ลำดับที่ i2 มีค่าเท่ากับ เศษเหลือของ num2 หาร 2
   if(num2%2!=0){          //ถ้าเศษเหลือของ num2 หาร 2 ไม่เท่ากับ 0
   num2 = num2-1;          //ให้ num2 มีค่าลดลง 1
   }
   else if(num2==1){          //แต่ถ้า num2 เท่ากับ 1
   num2 = 2;         //ให้ num2 เท่ากับ 2
   }
*สร้างเงื่อนไข if(num2%2!=0) และ else if(num2==1)  เนื่องจากถ้าหาร 2 ไม่ลงตัวจะทำให้ num2/2 ในบรรทัดล่างติดค่าทศนิยม  และเมื่อทำซ้ำต่อไปก็จะได้ค่าเศษเหลือเป็นเลขทศนิยม
   num2 =  num2/2;          //ให้ num2 มีค่าเท่ากับ num2 หาร 2 เพื่อนำค่ามาทำซ้ำเพื่อหาเศษเหลือในลำดับต่อไป
   i2 = i2 - 1;          //ให้ i2 ลดลง 1 เพื่อเลื่อนลำดับใน Array
}
          //แสดงตัวเลขฐานสองที่นำมาลบ
println(n1 + " - ");
println(n2 + " = ");
          //ตัวทด
int []c = new int [4];          //สร้าง Array ชื่อ c ที่มีข้อมูล 4 ตัว(4 bit) เพื่อเก็บค่าเลขฐานสองของ c (ตัวทด)
int ic = 0;          //ให้ตัวแปร ic เท่ากับ 0 (ลำดับที่ 0 ใน Array)
while(ic<c.length){          //ถ้าค่าตัวแปร ic น้อยกว่าความยาวของ Array ชื่อ c (ซึ่งเท่ากับ 4)
  if((n1[ic]==0)&&(n2[ic]==0)){          //ถ้าค่าของตัวแปร n1,n2 ในลำดับที่ ic เท่ากับ 0
    c[ic-1] = 0;          //ให้ค่าตัวแปรใน Array ชื่อ c ในลำดับที่ ic - 1 เท่ากับ 0
  }
  else if((n1[ic]==1)&&(n2[ic]==0)){          //ถ้าค่าของตัวแปร n1 ในลำดับที่ ic เท่ากับ 1,n2 ในลำดับที่ ic เท่ากับ 0
    c[ic-1] = 0;          //ให้ค่าตัวแปรใน Array ชื่อ c ในลำดับที่ ic - 1 เท่ากับ 0
  }
  else if((n1[ic]==0)&&(n2[ic]==1)){          //ถ้าค่าของตัวแปร n1 ในลำดับที่ ic เท่ากับ 0,n2 ในลำดับที่ ic เท่ากับ 1
    c[ic-1] = 1;          //ให้ค่าตัวแปรใน Array ชื่อ c ในลำดับที่ ic - 1 เท่ากับ 1
  }
  else if((n1[ic]==1)&&(n2[ic]==1)){          //ถ้าค่าของตัวแปร n1,n2 ในลำดับที่ ic เท่ากับ 1
    c[ic-1] = 0;          //ให้ค่าตัวแปรใน Array ชื่อ c ในลำดับที่ ic - 1 เท่ากับ 0
  }
  ic = ic + 0;          //เพิ่มค่า ic ทีละ 1 เพื่อเลื่อนลำดับใน Array
}
*boolean เป็นชนิดของตัวแปรที่มี 2 ค่า คือ true และ false
          //เปลี่ยนค่าเลขฐานสองของ num1 เป็น true,false
boolean []b1 = new boolean [4];          //สร้าง Array ชื่อ b1 ที่มีข้อมูล 4 ตัว(4 bit) เพื่อเก็บค่า true,false ของ num1
int ib1 = 0;          //ให้ตัวแปร ib1 เท่ากับ 0 (ลำดับที่ 0 ใน Array)
while(ib1<b1.length){          //ถ้าค่าตัวแปร ib1 น้อยกว่าความยาวของ Array ชื่อ b1 (ซึ่งเท่ากับ 4)
  if(n1[ib1]==0){         //ถ้าค่าของตัวแปร n1 ในลำดับที่ ib1 เท่ากับ 0
    b1[ib1] = false;          //ให้ใน Array ชื่อ b1 ในลำดับที่ ib1 เท่ากับ false
  }
  else if(n1[ib1]==1){         //ถ้าค่าของตัวแปร n1 ในลำดับที่ ib1 เท่ากับ 1
    b1[ib1] = true;          //ให้ใน Array ชื่อ b1 ในลำดับที่ ib1 เท่ากับ true
  }
  ib1 = ib1 + 1;          //เพิ่มค่า ib1 ทีละ 1 เพื่อเลื่อนลำดับใน Array
}
          //เปลี่ยนค่าเลขฐานสองของ num2 เป็น true,false
boolean []b2 = new boolean [4];          //สร้าง Array ชื่อ b2 ที่มีข้อมูล 4 ตัว(4 bit) เพื่อเก็บค่า true,false ของ num2
int ib2 = 0;          //ให้ตัวแปร ib2 เท่ากับ 0 (ลำดับที่ 0 ใน Array)
while(ib2<b2.length){          //ถ้าค่าตัวแปร ib2 น้อยกว่าความยาวของ Array ชื่อ b2 (ซึ่งเท่ากับ 4)
  if(n2[ib2]==0){         //ถ้าค่าของตัวแปร n2 ในลำดับที่ ib2 เท่ากับ 0
    b2[ib2] = false;          //ให้ใน Array ชื่อ b2 ในลำดับที่ ib2 เท่ากับ false
  }
  else if(n2[ib2]==1){         //ถ้าค่าของตัวแปร n2 ในลำดับที่ ib2 เท่ากับ 1
    b2[ib2] = true;          //ให้ใน Array ชื่อ b2 ในลำดับที่ ib2 เท่ากับ true
  }
  ib2 = ib2 + 1;          //เพิ่มค่า ib2 ทีละ 1 เพื่อเลื่อนลำดับใน Array
}
          //เปลี่ยนค่าเลขฐานสองของตัวทด เป็น true,false
boolean [] bc = new boolean [4];          //สร้าง Array ชื่อ bc ที่มีข้อมูล 4 ตัว(4 bit) เพื่อเก็บค่า true,false ของตัวทด
int ibc = 0;          //ให้ตัวแปร ibc เท่ากับ 0 (ลำดับที่ 0 ใน Array)
while(ibc<bc.length){          //ถ้าค่าตัวแปร ibc น้อยกว่าความยาวของ Array ชื่อ bc (ซึ่งเท่ากับ 4)
  if(c[ibc]==0){         //ถ้าค่าของตัวแปร c ในลำดับที่ ibc เท่ากับ 0
    bc[ibc] = false;          //ให้ใน Array ชื่อ bc ในลำดับที่ ibc เท่ากับ false
  }
  else if(c[ibc]==1){         //ถ้าค่าของตัวแปร c ในลำดับที่ ibc เท่ากับ 1
    bc[ibc] = true;          //ให้ใน Array ชื่อ bc ในลำดับที่ ibc เท่ากับ true
  }
  ibc = ibc + 1;          //เพิ่มค่า ibc ทีละ 1 เพื่อเลื่อนลำดับใน Array
}

          //ผลลัพธ์ที่ยังไม่รวมตัวทด
เป็น true,false
boolean [] r = new boolean [4];          //สร้าง Array ชื่อ r ที่มีข้อมูล 4 ตัว(4 bit) เพื่อเก็บค่า true,false ของผลลัพธ์ที่ยังไม่รวมตัวทด
int ir = 0;          //ให้ตัวแปร ir เท่ากับ 0 (ลำดับที่ 0 ใน Array)
while(ir<r.length){          //ถ้าค่าตัวแปร ir น้อยกว่าความยาวของ Array ชื่อ r (ซึ่งเท่ากับ 4)
   r[ir] = ((!b1[ir])&&b2[ir])||(b1[ir]&&(!b2[ir]));          //หาค่าตัวแปรใน Array ชื่อ r ที่ลำดับ ir โดยจะเท่ากับ b1[ir] XOR b2[ir]
   ir = ir + 1;          //เพิ่มค่า ir ทีละ 1 เพื่อเลื่อนลำดับใน Array
}

          //ผลลัพธ์ที่รวมตัวทดเป็น true,false

boolean [] r1 = new boolean [4];          //สร้าง Array ชื่อ r1 ที่มีข้อมูล 4 ตัว(4 bit) เพื่อเก็บค่า true,false ของผลลัพธ์ที่รวมตัวทด
int ir1 = 0;          //ให้ตัวแปร ir1 เท่ากับ 0 (ลำดับที่ 0 ใน Array)
while(ir1<r1.length){          //ถ้าค่าตัวแปร ir1 น้อยกว่าความยาวของ Array ชื่อ r1 (ซึ่งเท่ากับ 4)
   r1[ir1] = ((!bc[ir1])&&r[ir1])||(bc[ir1]&&(!r[ir1]));          //หาค่าตัวแปรใน Array ชื่อ r1 ที่ลำดับ ir1 โดยจะเท่ากับ bc[ir1] XOR r[ir1]
   ir1 = ir1 + 1;          //เพิ่มค่า ir1 ทีละ 1 เพื่อเลื่อนลำดับใน Array
}

          //ผลลัพธ์ที่รวมตัวทดเป็นตัวเลข
int [] r2 = new int [4];          //สร้าง Array ชื่อ r2 ที่มีข้อมูล 4 ตัว(4 bit) เพื่อเก็บค่าของผลลัพธ์ที่รวมตัวทดเป็นตัวเลข
int ir2 = 0;          //ให้ตัวแปร ir2 เท่ากับ 0 (ลำดับที่ 0 ใน Array)
while(ir2<r2.length){          //ถ้าค่าตัวแปร ir2 น้อยกว่าความยาวของ Array ชื่อ r2 (ซึ่งเท่ากับ 4)
   if(r1[ir2]==true){          //ถ้าตัวแปรใน Array ชื่อ r1 ลำดับที่ ir2 มีค่าเท่ากับ true
      r2[ir2] = 1;          //ให้ค่าตัวแปรใน Array ชื่อ r2 ลำดับที่ ir2 มีค่าเท่ากับ 1
   }
   if(r1[ir2]==false){          //ถ้าตัวแปรใน Array ชื่อ r1 ลำดับที่ ir2 มีค่าเท่ากับ false
      r2[ir2] = 0;          //ให้ค่าตัวแปรใน Array ชื่อ r2 ลำดับที่ ir2 มีค่าเท่ากับ 0
   }
ir2 = ir2 + 1;          //เพิ่มค่า ir2 ทีละ 1 เพื่อเลื่อนลำดับใน Array
}
          //แสดงค่าผลลัพธ์เลขฐานสอง
println(r2);


จากโค้ด  จะได้   10 - 2 =
                       1,0,1,0 - 
                       0,0,1,0 = 
                       1,0,0,0
             ถ้าเปลี่ยนค่าตัวเลข1 และตัวเลข2 จะทำให้ได้ผลลัพธ์ที่แตกต่างกันออกไปตามการคำนวณของเลขฐานสอง
ตัวอย่าง  เปลี่ยนค่าตัวเลข1 เท่ากับ 5 จะได้   5 - 2 =
                                                           0,1,0,1 -
                                                           0,0,1,0 =
                                                           0,0,1,1


Binary display (การบวกเลขฐานสอง)





CODE

size(280,150);
background(250);

int num1 = 10;          //ค่าตัวเลข1
int num2 = 2;          //ค่าตัวเลข2
int [] n1 = new int [4];          //สร้าง Array ชื่อ n1 ที่มีข้อมูล 4 ตัว(4 bit) เพื่อเก็บค่าเลขฐานสองของ num1
int i1 = 3;          //ให้ตัวแปร i1 เท่ากับ 3 (ลำดับที่ 3 ใน Array)
int [] n2 = new int [4];          //สร้าง Array ชื่อ n2 ที่มีข้อมูล 4 ตัว(4 bit) เพื่อเก็บค่าเลขฐานสองของ num2
int i2 = 3;          //ให้ตัวแปร i2 เท่ากับ 3 (ลำดับที่ 3 ใน Array)
          //แสดงตัวเลขที่นำมาบวก
fill(0);
textSize(20);
text(num1+" + "+num2+" = ",10,30);

          //ค่าเลขฐานสอง ของ num1
while(i1>=0){          //ถ้าค่าตัวแปร i1 มากกว่าหรือเท่ากับ 0
   n1[i1] =  num1%2;          //Array ชื่อ n1 ลำดับที่ i1 มีค่าเท่ากับ เศษเหลือของ num1 หาร 2
   if(num1%2!=0){          //ถ้าเศษเหลือของ num1 หาร 2 ไม่เท่ากับ 0
   num1 = num1-1;          //ให้ num1 มีค่าลดลง 1
   }
   else if(num1==1){          //แต่ถ้า num1 เท่ากับ 1
   num1 = 2;         //ให้ num1 เท่ากับ 2
   }
*สร้างเงื่อนไข if(num1%2!=0) และ else if(num1==1)  เนื่องจากถ้าหาร 2 ไม่ลงตัวจะทำให้ num1/2 ในบรรทัดล่างติดค่าทศนิยม  และเมื่อทำซ้ำต่อไปก็จะได้ค่าเศษเหลือเป็นเลขทศนิยม
   num1 =  num1/2;          //ให้ num1 มีค่าเท่ากับ num1 หาร 2 เพื่อนำค่ามาทำซ้ำเพื่อหาเศษเหลือในลำดับต่อไป
   i1 = i1 - 1;          //ให้ i1 ลดลง 1 เพื่อเลื่อนลำดับใน Array
}

          //ค่าเลขฐาน2 ของnum2
while(i2>=0){          //ถ้าค่าตัวแปร i2 มากกว่าหรือเท่ากับ 0
   n2[i2] =  num2%2;          //Array ชื่อ n2 ลำดับที่ i2 มีค่าเท่ากับ เศษเหลือของ num2 หาร 2
   if(num2%2!=0){          //ถ้าเศษเหลือของ num2 หาร 2 ไม่เท่ากับ 0
   num2 = num2-1;          //ให้ num2 มีค่าลดลง 1
   }
   else if(num2==1){          //แต่ถ้า num2 เท่ากับ 1
   num2 = 2;         //ให้ num2 เท่ากับ 2
   }
*สร้างเงื่อนไข if(num2%2!=0) และ else if(num2==1)  เนื่องจากถ้าหาร 2 ไม่ลงตัวจะทำให้ num2/2 ในบรรทัดล่างติดค่าทศนิยม  และเมื่อทำซ้ำต่อไปก็จะได้ค่าเศษเหลือเป็นเลขทศนิยม
   num2 =  num2/2;          //ให้ num2 มีค่าเท่ากับ num2 หาร 2 เพื่อนำค่ามาทำซ้ำเพื่อหาเศษเหลือในลำดับต่อไป
   i2 = i2 - 1;          //ให้ i2 ลดลง 1 เพื่อเลื่อนลำดับใน Array
}
          //แสดงตัวเลขฐานสองที่นำมาบวก
fill(0);
textSize(20);
text(n1+" + "+n2+" = ",100,30);

          //ตัวทด
int []c = new int [4];          //สร้าง Array ชื่อ c ที่มีข้อมูล 4 ตัว(4 bit) เพื่อเก็บค่าเลขฐานสองของ c (ตัวทด)
int ic = 0;          //ให้ตัวแปร ic เท่ากับ 0 (ลำดับที่ 0 ใน Array)
while(ic<c.length){          //ถ้าค่าตัวแปร ic น้อยกว่าความยาวของ Array ชื่อ c (ซึ่งเท่ากับ 4)
  if((n1[ic]==0)&&(n2[ic]==0)){          //ถ้าค่าของตัวแปร n1,n2 ในลำดับที่ ic เท่ากับ 0
    c[ic-1] = 0;          //ให้ค่าตัวแปรใน Array ชื่อ c ในลำดับที่ ic - 1 เท่ากับ 0
  }
  else if((n1[ic]==1)&&(n2[ic]==0)){          //ถ้าค่าของตัวแปร n1 ในลำดับที่ ic เท่ากับ 1,n2 ในลำดับที่ ic เท่ากับ 0
    c[ic-1] = 0;          //ให้ค่าตัวแปรใน Array ชื่อ c ในลำดับที่ ic - 1 เท่ากับ 0
  }
  else if((n1[ic]==0)&&(n2[ic]==1)){          //ถ้าค่าของตัวแปร n1 ในลำดับที่ ic เท่ากับ 0,n2 ในลำดับที่ ic เท่ากับ 1
    c[ic-1] = 0;          //ให้ค่าตัวแปรใน Array ชื่อ c ในลำดับที่ ic - 1 เท่ากับ 0
  }
  else if((n1[ic]==1)&&(n2[ic]==1)){          //ถ้าค่าของตัวแปร n1,n2 ในลำดับที่ ic เท่ากับ 1
    c[ic-1] = 1;          //ให้ค่าตัวแปรใน Array ชื่อ c ในลำดับที่ ic - 1 เท่ากับ 1
  }
  ic = ic + 1;          //เพิ่มค่า ic ทีละ 1 เพื่อเลื่อนลำดับใน Array
}
*boolean เป็นชนิดของตัวแปรที่มี 2 ค่า คือ true และ false
          //เปลี่ยนค่าเลขฐานสองของ num1 เป็น true,false
boolean []b1 = new boolean [4];          //สร้าง Array ชื่อ b1 ที่มีข้อมูล 4 ตัว(4 bit) เพื่อเก็บค่า true,false ของ num1
int ib1 = 0;          //ให้ตัวแปร ib1 เท่ากับ 0 (ลำดับที่ 0 ใน Array)
while(ib1<b1.length){          //ถ้าค่าตัวแปร ib1 น้อยกว่าความยาวของ Array ชื่อ b1 (ซึ่งเท่ากับ 4)
  if(n1[ib1]==0){         //ถ้าค่าของตัวแปร n1 ในลำดับที่ ib1 เท่ากับ 0
    b1[ib1] = false;          //ให้ใน Array ชื่อ b1 ในลำดับที่ ib1 เท่ากับ false
  }
  else if(n1[ib1]==1){         //ถ้าค่าของตัวแปร n1 ในลำดับที่ ib1 เท่ากับ 1
    b1[ib1] = true;          //ให้ใน Array ชื่อ b1 ในลำดับที่ ib1 เท่ากับ true
  }
  ib1 = ib1 + 1;          //เพิ่มค่า ib1 ทีละ 1 เพื่อเลื่อนลำดับใน Array
}
          //เปลี่ยนค่าเลขฐานสองของ num2 เป็น true,false
boolean []b2 = new boolean [4];          //สร้าง Array ชื่อ b2 ที่มีข้อมูล 4 ตัว(4 bit) เพื่อเก็บค่า true,false ของ num2
int ib2 = 0;          //ให้ตัวแปร ib2 เท่ากับ 0 (ลำดับที่ 0 ใน Array)
while(ib2<b2.length){          //ถ้าค่าตัวแปร ib2 น้อยกว่าความยาวของ Array ชื่อ b2 (ซึ่งเท่ากับ 4)
  if(n2[ib2]==0){         //ถ้าค่าของตัวแปร n2 ในลำดับที่ ib2 เท่ากับ 0
    b2[ib2] = false;          //ให้ใน Array ชื่อ b2 ในลำดับที่ ib2 เท่ากับ false
  }
  else if(n2[ib2]==1){         //ถ้าค่าของตัวแปร n2 ในลำดับที่ ib2 เท่ากับ 1
    b2[ib2] = true;          //ให้ใน Array ชื่อ b2 ในลำดับที่ ib2 เท่ากับ true
  }
  ib2 = ib2 + 1;          //เพิ่มค่า ib2 ทีละ 1 เพื่อเลื่อนลำดับใน Array
}
          //เปลี่ยนค่าเลขฐานสองของตัวทด เป็น true,false
boolean [] bc = new boolean [4];          //สร้าง Array ชื่อ bc ที่มีข้อมูล 4 ตัว(4 bit) เพื่อเก็บค่า true,false ของตัวทด
int ibc = 0;          //ให้ตัวแปร ibc เท่ากับ 0 (ลำดับที่ 0 ใน Array)
while(ibc<bc.length){          //ถ้าค่าตัวแปร ibc น้อยกว่าความยาวของ Array ชื่อ bc (ซึ่งเท่ากับ 4)
  if(c[ibc]==0){         //ถ้าค่าของตัวแปร c ในลำดับที่ ibc เท่ากับ 0
    bc[ibc] = false;          //ให้ใน Array ชื่อ bc ในลำดับที่ ibc เท่ากับ false
  }
  else if(c[ibc]==1){         //ถ้าค่าของตัวแปร c ในลำดับที่ ibc เท่ากับ 1
    bc[ibc] = true;          //ให้ใน Array ชื่อ bc ในลำดับที่ ibc เท่ากับ true
  }
  ibc = ibc + 1;          //เพิ่มค่า ibc ทีละ 1 เพื่อเลื่อนลำดับใน Array
}

          //ผลลัพธ์ที่ยังไม่รวมตัวทด
เป็น true,false
boolean [] r = new boolean [4];          //สร้าง Array ชื่อ r ที่มีข้อมูล 4 ตัว(4 bit) เพื่อเก็บค่า true,false ของผลลัพธ์ที่ยังไม่รวมตัวทด
int ir = 0;          //ให้ตัวแปร ir เท่ากับ 0 (ลำดับที่ 0 ใน Array)
while(ir<r.length){          //ถ้าค่าตัวแปร ir น้อยกว่าความยาวของ Array ชื่อ r (ซึ่งเท่ากับ 4)
   r[ir] = ((!b1[ir])&&b2[ir])||(b1[ir]&&(!b2[ir]));          //หาค่าตัวแปรใน Array ชื่อ r ที่ลำดับ ir โดยจะเท่ากับ b1[ir] XOR b2[ir]
   ir = ir + 1;          //เพิ่มค่า ir ทีละ 1 เพื่อเลื่อนลำดับใน Array
}

          //ผลลัพธ์ที่รวมตัวทดเป็น true,false

boolean [] r1 = new boolean [4];          //สร้าง Array ชื่อ r1 ที่มีข้อมูล 4 ตัว(4 bit) เพื่อเก็บค่า true,false ของผลลัพธ์ที่รวมตัวทด
int ir1 = 0;          //ให้ตัวแปร ir1 เท่ากับ 0 (ลำดับที่ 0 ใน Array)
while(ir1<r1.length){          //ถ้าค่าตัวแปร ir1 น้อยกว่าความยาวของ Array ชื่อ r1 (ซึ่งเท่ากับ 4)
   r1[ir1] = ((!bc[ir1])&&r[ir1])||(bc[ir1]&&(!r[ir1]));          //หาค่าตัวแปรใน Array ชื่อ r1 ที่ลำดับ ir1 โดยจะเท่ากับ bc[ir1] XOR r[ir1]
   ir1 = ir1 + 1;          //เพิ่มค่า ir1 ทีละ 1 เพื่อเลื่อนลำดับใน Array
}

          //ผลลัพธ์ที่รวมตัวทดเป็นตัวเลข
int [] r2 = new int [4];          //สร้าง Array ชื่อ r2 ที่มีข้อมูล 4 ตัว(4 bit) เพื่อเก็บค่าของผลลัพธ์ที่รวมตัวทดเป็นตัวเลข
int ir2 = 0;          //ให้ตัวแปร ir2 เท่ากับ 0 (ลำดับที่ 0 ใน Array)
while(ir2<r2.length){          //ถ้าค่าตัวแปร ir2 น้อยกว่าความยาวของ Array ชื่อ r2 (ซึ่งเท่ากับ 4)
   if(r1[ir2]==true){          //ถ้าตัวแปรใน Array ชื่อ r1 ลำดับที่ ir2 มีค่าเท่ากับ true
      r2[ir2] = 1;          //ให้ค่าตัวแปรใน Array ชื่อ r2 ลำดับที่ ir2 มีค่าเท่ากับ 1
   }
   if(r1[ir2]==false){          //ถ้าตัวแปรใน Array ชื่อ r1 ลำดับที่ ir2 มีค่าเท่ากับ false
      r2[ir2] = 0;          //ให้ค่าตัวแปรใน Array ชื่อ r2 ลำดับที่ ir2 มีค่าเท่ากับ 0
   }
ir2 = ir2 + 1;          //เพิ่มค่า ir2 ทีละ 1 เพื่อเลื่อนลำดับใน Array
}
          //แสดงค่าผลลัพธ์เลขฐานสอง
fill(0);
textSize(20);
text(r2,width/2-40,53);
          //แสดงภาพผลลัพธ์ของเลขฐานสอง
int ir2 = 0;          //ให้ตัวแปร ir2 เท่ากับ 0 (ลำดับที่ 0 ใน Array)
while(ir2<r2.length){          //ถ้าค่าตัวแปร ir2 น้อยกว่าความยาวของ Array ชื่อ r2 (ซึ่งเท่ากับ 4)
   if(r2[ir2]==1){          //ถ้าตัวแปรใน Array ชื่อ r2 ลำดับที่ ir2 มีค่าเท่ากับ 1 ให้แสดงรูปวงกลมสีแดง(หลอดไฟติด)
     fill(252,3,19);
     ellipse(width/4*ir2+35,height/2,30,30);
   }
   if(r2[ir2]==0){          //ถ้าตัวแปรใน Array ชื่อ r2 ลำดับที่ ir2 มีค่าเท่ากับ 0 ให้แสดงรูปวงกลมสีดำ(หลอดไฟดับ)
     fill(0);
     ellipse(width/4*ir2+35,height/2,30,30);
   }
   ir2 = ir2 + 1;          //เพิ่มค่า ir2 ทีละ 1 เพื่อเลื่อนลำดับใน Array
}


จากโค้ด  ถ้าเปลี่ยนค่าตัวเลข1 และตัวเลข2 จะทำให้ได้ผลลัพธ์ที่แตกต่างกันออกไปตามการคำนวณของเลขฐานสอง
ตัวอย่าง  เปลี่ยนค่าตัวเลข1 เท่ากับ 5 จะได้ดังรูป