บทที่ 7 การคำนวณทางคณิตศาสตร์


7.1 การบวกเลขฐานสอง
        การบวกเลขฐานสอง ทำได้โดยเรียนแบบเลขฐานสิบ แต่ฐานสิบมีเลข 10 ตัว คือ 0 - 9 เมื่อบวกได้ 10 ต้องใส่แล้วทดไปข้างหน้า 1 หรือ 20 ก็ใส่ 0 แล้วทดไปข้างหน้า 2 ไปเรื่อยๆ เมื่อนำมาใช้กับเลขฐานสอง ซึ่งมีตัวเลขสองตัวคือ 0 กับ 1 นำมาบวกกันได้ 2 ให้ใส่ 0 แล้วทดไปข้างหน้า 1 เช่นกัน ดังตัวอย่าง ต่อไปนี้
ตัวอย่างที่ 1  จงบวก (7536) เข้ากับ (3527)
วิธีทำ 
7   5   3   6 +
3   5   2   7
1  1   0   6   3
       
*ในการยืมตัวเลขมา 1 จะทำให้ตัวเลขในหลักที่ถูกยืมลดลง 1 ถ้าตัวเลขที่ถูกยืมถัดไปมีค่าเท่ากับ 0 ให้ยืมหลักถัดไปที่มี 1 จะทำให้เลขที่ถูกยืมเป็น 0 และเลข 0 ที่ไม่สามารถยืมได้นั้นจะมีค่าเท่ากับ 1
ตัวอย่างที่ 1 แสดงการหาค่า 10011 – 1010
บิต = 256 ค่า (0-255)
16 บิต = 65,536 (0-65,535)
32 บิต = 4,294,967,296 (0-4,294,967,295)
00110101 = +53
10110101 = -53
เช่น 1’s complement ของ 10110101 คือ
11111111-10110101 = 01001010 หรือ สลับค่าทุกบิตเป็นค่าตรงข้าม
10110101 ---> 01001010
2’s complement: เกิดจากบวก 1 เข้ากับบิตขวาสุดของ 1’s complement เช่น หาค่า 2’s complement ของ10110100 คือ
ค่า 1’s complement ของ 10110100 = 01001011
ค่า 2’s complement ของ 10110100 = 01001011+1 = 01001100
ค่า value box ของจำนวน + ขนาด 8 บิต
โครงสร้างการแสดงค่า 2’s complement เลขจำนวนเต็มที่มีเครื่องหมาย Overflow และตัวทด :
ตัวอย่าง
 1 : จงลบเลขฐานสอง 100102 - 10112 โดยใช้วิธี     2’s Complement
ซึ่งก็คือ ทำการตั้งหลักของการคูณให้ตรงกัน โดยเริ่มจากบิท หรือหลักตัวเลขทางขวามือสุดก่อน
เมื่อได้ทำการคูณ ตัวตั้งด้วยตัวคูณทุกตำแหน่งแล้ว ก็ให้ทำการบวกโดยใช้กฎการบวกเลขฐานสองตามปกติทุกประการ  การคูณจึงมีหลักเกณฑ์ดังนี้
เกณฑ์การหารเลขฐานสองสามารถสรุปได้ดังต่อไปนี้
                                      / 1 = 1
                                    3   5   2   7 
        1   1   0   6   3

ตัวที่ 1   (นับจากทางขวาสุด) 6+7 = 13 ใส่ 3 ทด 1
ตัวที่ 2   3+2 = 5 รวมกับตัวทดอีก 1 จึงเท่ากับ 6 เลขไม่ถึง 10 ก็ไม่ต้องเอา 10 ไปลบตามอย่างไร เราจึงใส่ 6 ลงไปและไม่มีตัวทด
ตัวที่ 3   5+5 =10  ผลลัพธ์ได้  = 10  ใส่ 0 ทด 1
ตัวที่ 4    7+3 =10 รวมตัวทดอีก 1 เป็น 11 ใส่ 1 ทด 1 ได้ผลลัพธ์ตามต้องการ

  วิธีการบวกเลขฐานสองมีหลักเกณฑ์ที่ช่วยในการบวกเลขฐานสอง 4 ข้อดังนี้คือ
   1.  0 + 0 = 0
   2.  0 + 1 = 1
   3.  1 + 0 = 1
   4.  1 + 1 = 0  ทด 1

   เช่น การบวกเลขฐานสอง 2 จำนวน คือ 110   และ 111   สามารถทำได้ดังนี้คือ
     110               คอลัมน์ที่ 1         0 + 1 = 1
     111               คอลัมน์ที่ 2         1 + 1 = 0 ทด 1
   1101               คอลัมน์ที่ 3         1 + 1 + ทด 1 = 10 + 1 = 11







1.การบวกเริ่มจากพิจารณาจากหลักที่มีนัยสำคัญต่ำสุดนั่นคือหลักที่ 5
2. หลักที่ 5 เป็น 1+ 0 ได้ผลลัพธ์เป็น 1 ไม่มีการทด
3. หลักที่ 4 เป็น 1+ 1 ได้ผลลัพธ์เป็น 0 ทด 1
4. หลักที่ 3 เป็น 0 + 0 ได้ 0 แต่มีการทดจากหลักที่แล้ว เมื่อบวกกับตัวทด ได้ผลลัพธ์เป็น 1ไม่มีการทด
5. หลักที่ 2 เป็น 0 + 1 ได้ผลลัพธ์เป็น 1 ไม่มีการทด
6. หลักที่ 1 ได้ผลลัพธ์เป็น 1 เหมือนเดิม
7. ผลลัพธ์เป็น 111012

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

หลักในการลบเลขฐานสองมีดังนี้


                   0101  

การลบเลขฐานสองก็เช่นเดียวกับการลบเลขฐานสิบ คือพิจารณาเอาเลขที่เป็นตัวตั้งลบด้วยตัวลบทีละหลัก หากตัวตั้งเป็น 1 ตัวลบเป็น 0 ผลลัพธ์ได้เป็น 1 แต่ถ้าตัวตั้งเป็น 0 และตัวลบเป็น 1 ต้องมีการดึงค่าในหลักที่อยู่ทางซ้ายมาได้ผลลัพธ์เป็น 1 และมีผลให้ค่าของหลักที่ถูกดึงมามีค่าเป็น 0 ดังตัวอย่างต่อไปนี้



1. การลบเริ่มพิจารณาจากหลักที่มีนัยสำคัญต่ำสุดนั่นคือหลักที่ 5
2. หลักที่ 5 เป็น 1 - 0 ได้ผลลัพธ์เป็น 1
3. หลักที่ 4 เป็น 1 - 1 ได้ผลลัพธ์เป็น 0
4. หลักที่ 3 เป็น 0 - 0 ได้ 0
5. หลักที่ 2 เป็น 0 - 1 ต้องดึงค่าจากหลักที่อยู่ทางซ้าย คือ 10 มาช่วยเป็น 10 - 1 ได้ผลลัพธ์เป็น 1
6. หลักที่ 1 ถูกหลักที่อยู่ทางขวาดึงไป ทำให้เหลือค่าเป็น 0
7. ผลลัพธ์เป็น 10012


7.3 เลขฐานสองแบบไม่มีเครื่องหมาย

การเก็บข้อมูลในคอมพิวเตอร์ที่เป็นเลขจำนวนเต็มไม่มีเครื่องหมาย จะเก็บเลขฐานสอง ตามจำนวนบิตที่กำหนด เช่น

7.4 เลขฐานสองที่มีเครื่องหมาย

            ในเลขฐานสิบที่มีเครื่องหมายติดลบ จะเขียนเครื่องหมายลบไว้ข้างหน้าของขนาดตัวเลข เช่น -1 -2 -3เป็นต้น  ถ้าจะเขียนเครื่องหมายบวกข้างหน้าขนาดตัวเลขก็ได้ เช่น +1 +2 + 3 หรืออาจไม่ต้องเขียนก็หมายถึงเลขจำนวนบวก ถ้าแปลงฐานสิบให้เป็นฐานสอง และมีเครื่องหมายติดลบด้วยก็ได้ -001 -010 -011 หรือถ้าเป็นจำนวนบวกก็ +001 +010 +011 แต่การนำข้อมูลเหล่านี้ไปประมวลผลในระบบดิจิตอลจะไม่สามารถประมวลผลได้ ระบบจะทำงานได้เฉพาะ ข้อมูลดิจิตอลที่เป็น 0 และ 1 เท่านั้น ดังนั้นเครื่องหมายบวกจึงถูกกำหนดค่าให้เป็นลอจิก 0 และเครื่องหมายลบ ถูกกำหนดให้เป็นค่าลอจิก 1 จึงทำให้ +001 +010 +011 ถูกเปลี่ยนรหัสเป็น 4 บิต ดังนี้ 0001 0010 0011 ส่วนจำนวนลบจะได้รหัส 4 บิตเช่นกัน คือ1001 1010 1011 ตัวเลขดังกล่าวประกอบด้วยบิตเครื่องหมาย


7.5 เลขคอมพลีเมนต์
 Sign-and-magnitude:   คล้ายเลขจำนวนเต็มทั่วไป

 แต่บิตซ้ายสุดเป็นบิตเครื่องหมาย 0 หมายถึง จำนวนเต็มบวกและ 1 เป็นจำนวนเต็มลบ

Sign-and-magnitude: คล้ายเลขจำนวนเต็มทั่วไป แต่บิตซ้ายสุดเป็นบิตเครื่องหมาย 0 หมายถึง จำนวนเต็มบวกและ 1 เป็นจำนวนเต็มลบ
00110101 = +53
10110101 = -53

1’s complement: เกิดจากนำเลขจำนวนเต็มฐานสองจำนวนนั้นลบออกจากค่าที่เป็น 1 ทุกบิต
เช่น 1’s complement ของ 10110101 คือ
11111111-10110101 = 01001010 หรือ สลับค่าทุกบิตเป็นค่าตรงข้าม
10110101 ---> 01001010

2’s complement: เกิดจากบวก 1 เข้ากับบิตขวาสุดของ 1’s complement เช่น หาค่า 2’s complement ของ10110100 คือ
ค่า 1’s complement ของ 10110100 = 01001011
ค่า 2’s complement ของ 10110100 = 01001011+1 = 01001100
ค่า value box ของจำนวน + ขนาด 8 บิต
ค่า value box ของจำนวน - ขนาด 8 บิต

โครงสร้างการแสดงค่า 2’s complement เลขจำนวนเต็มที่มีเครื่องหมาย Overflow และตัวทด :

โครงสร้างการแสดงค่า 2’s complement เลขจำนวนเต็มที่มีเครื่องหมาย Overflow และตัวทด :

โครงสร้างการแสดงค่า 2’s complement เลขจำนวนเต็มที่มีเครื่องหมาย Overflow และตัวทด :
โครงสร้างการแสดงค่า 2’s complement เลขจำนวนเต็มที่มีเครื่องหมาย Overflow และตัวทด :

โครงสร้างการแสดงค่า 2’s complement เลขจำนวนเต็มที่มีเครื่องหมาย Overflow และตัวทด :


Sign-and-magnitude: คล้ายเลขจำนวนเต็มทั่วไป แต่บิตซ้ายสุดเป็นบิตเครื่องหมาย 0 หมายถึง จำนวนเต็มบวกและ 1 เป็นจำนวนเต็มลบ
1’s complement: เกิดจากนำเลขจำนวนเต็มฐานสองจำนวนนั้นลบออกจากค่าที่เป็น 1 ทุกบิต

ค่า value box ของจำนวน - ขนาด 8 บิต


https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjJQfZ12j2O3m-j87kfLXV-_mVPXEQgJkVYgUN-zgss4ZZ-meCdiCazs25pKPFGdAFZQ92VU6gK11CeykC5va4Bn8i3vpDHojjy3zOLD1HDBqCIurfySox__arbYWTGsbF4rJgByPkCR9k/s640/7.3.jpg



  1’s Complement ของ 01011 = 10100
    2’s Complement ของ 01011 = 10101
                                                         10010
                                                       +10101
 ไม่มีตัวทดที่เกินมา                        1 00111
   ดังนั้น 100102 - 10112 = 1112


  ตัวอย่าง 2 : จงลบเลขฐานสอง 10112 - 100102  โดยใช้วิธี 2’s Complement
   1’s Complement ของ 10010 = 01101
   2’s Complement ของ 10010 = 01110
                                                          01011
                                                      +  01110
     ไม่มีตัวทดที่เกินมา                       11001
     1’s Complement 11001 = 00110
     2’s Complement 11001 = 00111
      ดังนั้น 10112 - 100102 = -1112


7.5 การบวก-ลบที่ใช้ทูคอมพลีเมนต์

เนื่องจากการคำนวณเลขฐานสองไม่มีการลบจึงทำการ Complement แทนการลบ

         1’s Complement  เป็นวิธีการกลับสถานะของตัวเลขฐานสองใหเป็นตรงกันข้าม เช่น 0 กลับเป็น 1 และ 1 กลับเป็น 0
         2’s Complement  เป็นวิธีการที่ต่อเนื่องจาก 1’s Complement

     โดยนำค่าที่ได้จาก 1’s Complement   บวกด้วย 1


  1’s Complement & 2’s Complement

  ตัวอย่าง : จงทำค่า 11001112 ให้อยู่ในรูป 1’s Complement

    เลขฐานสอง                         1100111
    1’s Complement                 0011000

 ตัวอย่าง : จงทำค่า 11100112 ให้อยู่ในรูป 2’s Complement

        เลขฐานสอง                          1110011
        1’s Complement                   0001100
                                                      +          1
         2’s Complement                 0001101 

7.6 การคูณ

ในระบบเลขฐานสอง เราสามารถกระทำได้ในลักษณะเช่นเดียวกับการคูณเลขฐานสิบ

1 × 1 = 1
1 × 0 = 0
0 × 1 = 0
0 × 0 = 0

ตัวอย่าง (1101) 2 x (101) 2 = (……..) 2
         วิธีทำ 1101 x
                     101
                   1101
                   0000 +
                  1101
           1 000001

       ตอบ (1000001) 2

7.7 การหาร

การหารในระบบเลขฐานสอง ก็จะทำเช่นเดียวกันกับการหารเลขฐานสิบ โดยใช้วิธีการหารแบบตั้งหารยาว

0 / 1 = 0

ตัวอย่าง  (100001) 2 / (1101) 2 = (……..) 2
วิธีทำ 1101)1000001(101
                        01101
                        001101
                           1101
                          0000

ตอบ (101) 2



อ้างอิง
http://somyut.krutechnic.com/unit1_14.html (สืบค้นวันที่  21ตุลาคม 2558)
http://com5520014.blogspot.com/2013/07/blog-post_3206.html (สืบค้นวันที่ 21 ตุลาคม 2558)
http://www.krumontree.com/ebook4/files/lesson2_21.htm (สืบค้นวันที่ 21 ตุลาคม 2558)
http://www4.csc.ku.ac.th/~b5340205541/n7.html (สืบค้นวันที่ 21 ตุลาคม 2558)
https://sites.google.com/site/sgsdfsdfklld/kar-complement (สืบค้นวันที่ 21 ตุลาคม 2558)



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

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