7.1 การบวกเลขฐานสอง
การบวกเลขฐานสอง ทำได้โดยเรียนแบบเลขฐานสิบ แต่ฐานสิบมีเลข 10 ตัว คือ 0 - 9 เมื่อบวกได้ 10 ต้องใส่0 แล้วทดไปข้างหน้า 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
8 บิต = 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
8 บิต = 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 และตัวทด :
แต่บิตซ้ายสุดเป็นบิตเครื่องหมาย 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 บิต
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)
ไม่มีความคิดเห็น:
แสดงความคิดเห็น