More Related Content
การแปลงเลขฐานสิบเป็นฐานสอง Similar to ระบบเลขฐานcom02-ระบบเลขฐานcom02-ระบบเลขฐานcom02- (19)
สอนการใช้งาน Debug ใน DOS mode ระบบเลขฐานcom02-ระบบเลขฐานcom02-ระบบเลขฐานcom02-
- 1. 1.1 ระบบดิจิตอลและระบบอนาล็อก
สัญญาณอนาล็อก (Analog Signal) หมายถึง สัญญาณที่
เกี่ยวข้องกับข้อมูลแบบต่อเนื่อง(Continuous Data) ที่มีขนาด
ไม่คงที่ มีลักษณะเป็นเส้นโค้งต่อเนื่องกันไป โดยการส่งสัญญาณ
แบบอนาล็อกจะถูกรบกวนให้มีการแปลความหมายผิดพลาดได้
ง่าย เช่น สัญญาณเสียงในสายโทรศัพท์ เป็นต้น
สัญญาณดิจิตอล (Digital Signal) หมายถึง สัญญาณที่
เกี่ยวข้องกับข้อมูลแบบไม่ต่อเนื่อง(Discrete Data) ที่มีขนาด
แน่นอนซึ่งขนาดดังกล่าวอาจกระโดดไปมาระหว่างค่าสองค่า คือ
สัญญาณระดับสูงสุดและสัญญาณระดับต่ำสุด ซึ่งสัญญาณ
ดิจิตอลนี้เป็นสัญญาณที่คอมพิวเตอร์ใช้ในการทำงานและติดต่อ
สื่อสารกัน เช่น สัญญาณไฟฟ้า
บทที่ 1 ระบบ
ตัวเลข
- 4. ระบบตัวเลขที่มีจำนวน 2 จำนวน (2 ค่า) เรียกว่าระบบเลขฐานสอง (Binary Number
System)
ซึ่งเป็นระบบตัวเลขที่สามารถนำมาใช้ในการสั่งงานคอมพิวเตอร์ โดยการแทนที่สภาวะ
ต่างๆ ของ
กระแสไฟฟ้า แต่ในชีวิตประจำวันของคนเราจะคุ้นเคยกับตัวเลขที่มีจำนวน 10 จำนวน คือ
เลข 0 - 9 ซึ่งเรียกว่าระบบเลขฐานสิบ (Decimal Number System) ดังนั้นจึงมีความ
จำเป็นต้อง
ศึกษาระบบเลขฐาน ประกอบการศึกษาวิชาด้านคอมพิวเตอร์
สาเหตุที่ต้องเป็นเลขฐานสอง
เพราะ เลขฐานสองประกอบด้วย 0 และ 1 ซึ่งตรงกับลักษณะทางกายภาพของวงจร
ไฟฟ้าที่มี
สองสถานะ คือ เปิด (on) และ ปิด (off) หรือตรงกับลักษณะทางตรรกะ นั่นก็คือ จริง
(True) และ
เท็จ (False)
1.2.ระบบตัวเลขและรหัส
- 5. ระบบจำนวนที่ใช้ในทางคอมพิวเตอร์ ประกอบด้วย
ระบบเลขฐานสอง (Binary Number System) ประกอบ
ด้วยตัวเลข 0 และ 1
ระบบเลขฐานแปด (Octal Number System) ประกอบ
ด้วยตัวเลข 0,1,2,3,4,5,6,7
ระบบเลขฐานสิบ (Decimal Number System) ประกอบ
ด้วยตัวเลข 0,1,2,3,4,5,6,7,8,9
ระบบเลขฐานสิบหก (Hexadecimal Number System)
ประกอบด้วยตัวเลข 0,1,2,3,4,5,6,7,8,9, A,B,C,D,E, F (เมื่
อ A=10, B=11, C=12, D=13, E=14, F=15)
1.2.ระบบตัวเลขและรหัส
- 6. 1.3 การเปลี่ยนฐานของระบบตัวเลข
การใช้เลขฐานต่างๆ ร่วมกันตั้งแต่ 2 ฐานขึ้นไปย่อม มีความ
สับสนเกี่ยวกับ
ค่าของมัน เช่น (11011100)2 มีค่าเท่ากับเท่าไรในเลขฐานสิบ
หรือ (357)8 มีค่า
เท่า กับเท่าไรในเลขฐานสอง เป็นต้น เราจึงมีความจำเป็นจะต้อง
มีการ
เปลี่ยนแปลงฐานของค่าตัวเลขเหล่านั้นให้ไปอยู่ในฐานเดียวกัน
การแปลงเลขจากฐานหนึ่งไปยังอีกฐานหนึ่งนั้น ในระบบ
Computer จะ
เกี่ยวข้องกับเฉพาะเลขฐานสอง เลขฐานแปด และเลขฐานสิบหก
- 7. 1.4 การแปลงเลขฐานสิบ เป็นเลขฐานสอง เลขฐาน
แปด และเลขฐานสิบหก
ตัวอย่างที่ 1.1 จงแปลง (35)10 ให้เป็นเลขฐานสอง
(Binary number)
วิธีทำ 2 35
2 17 เศษ 1
2 8 เศษ 1
2 4 เศษ 0
2 2 เศษ 0
2 1 เศษ 0
0 เศษ 1
นั่นคือ (35)10 = (100011)2
** ถ้าเป็นจำนวนเต็มให้เอา
เลขฐาน
ที่ต้องการหารจนกระทั่งได้
ผลหารเป็น 0 จากนั้นนำเศษ
มาเป็นคำตอบ โดยตอบจาก
ล่างขึ้นบน
- 8. ตัวอย่างที่ 1.2 (0.6875)10 ให้เป็นเลขฐานสอง (Binary number)
วิธีทำ 0.6875 0.3750 0.7500 0.5000
x x x x
2 2 2 2
1.3750 0.7500 1.5000 1.0000
นั่นคือ (0.6875)10 = (0.1011)2
ตัวอย่างที่ 1.3 (0.65625)10 ให้เป็นเลขฐานสอง (Binary number)
วิธีทำ
นั่นคือ
**ถ้าเป็นจำนวนทศนิยม
ให้คูณด้วย
เลขฐานที่ต้องการ และนำ
เลขหลังจุดทศนิยมของผล
คูณมาทำการคูณต่อ จน
ได้เลขหลังจุดทศนิยมของ
ผลคูณเป็น 0
- 9. ตัวอย่างที่ 1.4 (41.53125)10 ให้เป็นเลขฐานสอง (Binary number)
วิธีทำ 2 41
2 20 เศษ 1
2 10 เศษ 0
2 5 เศษ 0
2 2 เศษ 1
2 1 เศษ 0
0 เศษ 1
(41)10 = (101001)2 และ (0.53125)10 = (0.10001)2
นั่นคือ (41.53125)10 = (101001.10001)2
0.53125 x 2 = 1.06250
0.06250 x 2 = 0.12500
0.12500 x 2 = 0.25000
0.25000 x 2 = 0.50000
0.50000 x 2 = 1.00000
ฉะนั้น (0.53125)10 = (0.10001)2
- 10. ตัวอย่างที่ 1.5 (58)10 ให้เป็นเลข
ฐานแปด
วิธีทำ 8 58
8 7 เศษ 2
0 เศษ 7
นั่นคือ (58)10 = (72)8
ตัวอย่างที่ 1.6 (0.9375)10 ให้
เป็นเลขฐานแปด
0.9375 x 8 = 7.5000
0.5000 x 8 = 4.0000
นั่นคือ (0.9375)10 = (0.74)8
ตัวอย่างที่ 1.7 (87)10 ให้เป็นเลข
ฐานสิบหก
วิธีทำ 16 87
16 5 เศษ 7
0 เศษ 5
นั่นคือ (87)10 = (57)16
ตัวอย่างที่ 1.8 (0.46875)10 ให้เป็น
เลขฐานสิบหก
0.46875 x 16 = 7.50000
0.50000 x 16 = 8.00000
นั่นคือ (0. 46875)10 = (0.78)8
- 11. 1.5 การแปลงเลขฐานสอง เลขฐานแปด และเลข
ฐานสิบหกเป็นเลขฐานสิบ
การแปลงเลขฐานสอง เลขฐานแปดและเลขฐานสิบหกเป็นเลข
ฐาน สามารถทำได้
โดย การนำเลขแต่ละตำแหน่งของฐานเลขนั้นๆ คูณด้วยน้ำหนัก
(Weighting) ของเลข
ฐานนั้นแล้วนำมารวมกันทั้งหมดก็จะได้คำตอบที่ตองการ
ตัวอย่างที่ 1.9 จงแปลง (110110)2 ให้เป็นเลขฐานสิบ (Decimal
number)
วิธีทำ (110110)2 = 1x25
+ 1x24
+ 0x23
+ 1x22
+ 1x21
+ 0x20
= 32 + 16 + 0 + 4 + 2 + 0
= (54)10
- 12. ตัวอย่างที่ 1.10 จงแปลง (0.101)2 ให้เป็นเลขฐานสิบ (Decimal
number)
วิธีทำ (0.101)2 = (1x2-1
) + (0x2-2
) + (1x2-3
)
= 0.5 + 0 + 0.125
= (0.625)10
1.5 การแปลงเลขฐานสอง เลขฐานแปด และเลข
ฐานสิบหกเป็นเลขฐานสิบ
ตัวอย่างที่ 1.11 จงแปลง (110110.101)2 ให้เป็นเลขฐานสิบ (Decimal
number)
วิธีทำ (110110.101)2 = (1x25
) + (1x24
) + (0x23
) + (1x22
) + (1x21
) +
(0x20
)
+ (1x2-1
) + (0x2-2
) + (1x2-3
)
= 32 + 16 + 0 + 4 + 2 + 0+ 0.5 + 0 + 0.125
= (54.625)10
- 13. 1.5 การแปลงเลขฐานสอง เลขฐานแปด และเลข
ฐานสิบหกเป็นเลขฐานสิบ
ตัวอย่างที่ 1.12 จงแปลง (37)8 ให้เป็นเลขฐานสิบ (Decimal
number)
วิธีทำ (37)8 = (3x81
) + (7x80
)
= 24 + 7
= (31)10
ตัวอย่างที่ 1.13 จงแปลง (6E)16 ให้เป็นเลขฐานสิบ (Decimal
number)
วิธีทำ (6E)16 = (6x161
) + (14x160
) (*E=14)
= 96 + 14
= (110)10
- 14. 1.6 การแปลงเลขฐานสองเป็นเลขฐานแปด และแปลงเลข
ฐานแปดเป็นเลขฐานสอง
เลขฐานแปด
Octal
Number
เลขฐานสอง
Binary
Number
0 000
1 001
2 010
3 011
4 100
5 101
6 110
7 111
วิธีการแปลงเลขฐานสองเป็นเลขฐานแปดก็
สามารถ
ทำได้โดยการแปลงเลขฐานสองให้เป็นเลขฐานสิบ
เสียก่อน จากนั้นเราก็แปลง เลขฐานสิบที่ได้ให้เป็น
เลข
ฐานแปดอีกครั้งหนึ่ง ก็จะได้คำตอบตามต้องการ
ในทำนองเดียวกัน การแปลงเลขฐานแปดให้เป็น
เลขฐานสอง เราก็ทำได้ โดยการแปลงเลขฐานแปด
ให้
เป็นเลขฐานสิบ แล้วนำเลขฐานสิบที่ได้แปลงเป็น
เลขฐานสองต่อไป แต่วิธีดังกล่าวเป็นวิธียุ่งยาก วิธี
การ
แปลงแบบง่ายจะใช้วิธีแทนเลขฐานแปดหนึ่งหลัก
ด้วย
เลขฐานสองจำนวน 3 Bits (คำว่า Bits ย่อมาจาก
Binary Digit)
ตารางที่ 1.2 ความสัมพันธ์ระหว่างเลขฐานแปดกับเลขฐ
- 15. 1.6 การแปลงเลขฐานสองเป็นเลขฐานแปด และแปลงเลข
ฐานแปดเป็นเลขฐานสอง
การแปลงเลขฐานสอง เป็นเลขฐานแปด
ตัวอย่างที่ 1.14 จงแปลง (110111010)2 ให้เป็นเลขฐานแปด (Octal
number)
วิธีทำ (110111010)2 = 110 111 010 (เทียบ
ตาราง 1.2)
6 7 2
นั่นคือ (110111010)2 = (672)8
ตัวอย่างที่ 1.15 จงแปลง (11101001000.01011)2 ให้เป็นเลขฐานแปด
(Octal number)
วิธีทำ (11101001000.01011)2 = 0 11 101 001 000 . 010 11 0
3 5 1 0 . 2 6
นั่นคือ (11101001000.01011)2 = (3510.26)8
เพิ่ม
เพิ่ม
- 16. การแปลงเลขฐานแปด เป็นเลขฐานสอง
ตัวอย่างที่ 1.16 จงแปลง (637)8 ให้เป็นเลขฐานสอง (Binary
number)
วิธีทำ (637)8 = 6 = 110 3 = 011 7 = 111
= (110011111)2
ตัวอย่างที่ 1.17 จงแปลง (524.61)8 ให้เป็นเลขฐานสอง (Binary
number)
วิธีทำ (524.61)8 = 5 = 101 2 = 010 4 = 100 . 6 =
110 1 =001 = (101010100.110001)2
1.6 การแปลงเลขฐานสองเป็นเลขฐานแปด และแปลงเลข
ฐานแปดเป็นเลขฐานสอง
- 18. การแปลงเลขฐานสองเป็นเลขฐานสิบหก และแปลงเลขฐานสิบหกเป็นเลขฐานสอง
ก็คล้ายๆ กับการแปลงเลขฐานสองเป็นเลขฐานแปด และแปลงเลขฐานแปดเป็น
เลขฐานสอง ซึ่งมีข้อต่างกัน คือ เลขฐานแปดหนึ่งหลักแทนด้วยเลขฐานสอง จำนวน 3
บิต
ส่วนเลขฐานสิบหกหนึ่งหลักแทนด้วยเลขฐานสองจำนวน 4 บิต ดังนั้นการแปลง
เลขฐานสองเป็นเลขฐานสิบหก และแปลงเลขฐานสิบหกเป็นเลขฐานสอง จึงทำได้โดย
การแทนค่าต่างๆ ตามตารางที่ 1.3 กล่าวคือ หากต้องการแปลงเลขฐานสองเป็นเลขฐาน
สิบหก ก็ให้แบ่งเลขฐานสองออกเป็นชุดละ 4 บิต โดยนับจากข้างหลังไปข้างหน้า ถ้าชุด
สุดท้ายมีไม่ถึง 4 บิต ให้เติม 0 ลงไป แต่ถ้าเป็นทศนิยม การแบ่งเลขฐานสองเป็นชุด ให้
นับจากข้างหน้าไปข้างหลัง เมื่อแบ่งแล้วก็ให้แทนค่าเลขฐานสิบหก ตามตารางที่ 1.3
ส่วนการแปลงเลขฐานสิบหกเป็นเลขฐานสอง ก็ทำได้โดยการแทนค่าเลขฐานสิบหกแต่ละ
หลักด้วยเลขฐานสองตามตารางที่ 1.3 ตามตัวอย่าง ดังนี้
1.7 การแปลงเลขฐานสองเป็นเลขฐานสิบหก และแปลง
เลขฐานสิบหกเป็นเลขฐานสอง
- 19. 1.7 การแปลงเลขฐานสองเป็นเลขฐานสิบหก และแปลงเลข
ฐานสิบหกเป็นเลขฐานสอง
การแปลงเลขฐานสอง เป็นเลขฐานสิบหก
ตัวอย่างที่ 1.18 จงแปลง (100100111100)2 ให้เป็นเลขฐานสิบหก
(Hexadecimal number)
วิธีทำ (100100111100)2 = 1001 0011 1100 (เทียบ
ตาราง 1.3)
9 3 C
นั่นคือ (100100111100)2 = (93C)16
ตัวอย่างที่ 1.19 จงแปลง (1BE4)16 ให้เป็นเลขฐานสอง (Binary number)
วิธีทำ (1BE4)16 = 1 = 0001 B = 1011 E = 1110 4 = 0100
(เทียบตาราง 1.3)
= (0001101111100100)16 หรือ (1101111100100)16
* นับจากข้างหลังไปข้างหน้า
- 20. การบวกเลขฐานสอง
ตัวอย่างที่ 1.20 จงบวก (1011)2 เข้ากับ (1001)2
วิธีทำ 1 0 1 1 2
1 0 0 1 2
1 0 1 0 0 2
1.8 การบวกเลขฐานต่างๆ
** วิธีการบวกเลขฐานสอง
-หลักที่ 1 คือ 1+1 ได้ 2 (เอา 2
ลบเลขฐานสอง คือ 2-2=0)
ผลลัพธ์คือ 0 ทด 1(*ถ้าลบเลข
ฐานต้องทด 1)
-หลักที่ 2 คือ 1+0ได้ 1 บวกตัว
ทดอีก 1 จึงเท่ากับ 2 (เอา 2 ลบ
เลขฐานสอง คือ 2-2=0) ผลลัพธ์
คือ 0 ทด 1
-หลักที่ 3 คือ 0+0 ได้ 0 บวกตัว
ทดอีก 1 เท่ากับ 1 (*ผลลัพธ์ไม่
ถึง 2 ไม่ต้องลบออก)
+
1
1
1
การบวกเลขไม่ว่าจะเป็นเลขฐานอะไรก็แล้วแต่ จะมีวิธี
บวกเหมือนกันทั้งหมด เพื่อความเข้าใจในวิธีบวกเลข จึงขอ
อธิบาย วิธีการบวกเลขฐานสิบที่ถูกต้อง ดังตัวอย่างต่อไปนี้
- 21. การบวกเลขฐานแปด
ตัวอย่างที่ 1.21 จงบวก
(375)8 เข้ากับ (421)8
วิธีทำ 3 7 5 8
4 2 1 8
1 0 1 68
1.8 การบวกเลขฐานต่างๆ
** วิธีการบวกเลขฐานแปด
-หลักที่ 1 คือ เลข 5+1 ได้ 6
-หลักที่ 2 คือ 7+2ได้ 9 (9 เกิน
ฐานแปด ต้องเอา 9 ลบเลขฐาน
แปด คือ 9-8=1) ผลลัพธ์คือ 1
ทด 1 (*ถ้าลบเลขฐานต้องทด
1)
-หลักที่ 3 คือ 3+4 ได้ 7 บวกตัว
ทดอีก 1 เท่ากับ 8 (8 เท่าฐาน
แปด ต้องเอา 8 ลบเลขฐานแปด
คือ
8-8=0) ผลลัพธ์คือ 0 ทด 1 (*ถ้า
ลบเลขฐานต้องทด 1)
-หลักที่ 4 คือ ทด 1 ไม่มีตัวบวก
อีกแล้ว ก็ให้ใส่ 1 ลงมา
+
1
1
- 22. 1.8 การบวกเลขฐานต่างๆ
การบวกเลขฐานสิบหก
ตัวอย่างที่ 1.22 จงบวก (7A3B.15)16
เข้ากับ (9681.AD)16
วิธีทำ 7A3B.15 16
9681.AD 16
110BC.C2 16
+
1 1
1
** วิธีการบวกเลขฐานสิบหก
-หลักที่ 1 คือ 5+D(13) ได้ 18
(18 เกินฐานสิบหก ต้องเอา 18
ลบเลขฐานสิบหก คือ 18-16=2)
ผลลัพธ์คือ 2 ทด 1 (*ถ้าลบเลข
ฐานต้องทด 1)
-หลักที่ 2 คือ 1+A(10)ได้ B(11) บวกตัวทดอีก
1 เท่ากับ C(12) (*12ไม่ถึงฐานสิบหกไม่ต้อง
ลบ)
-หลักที่ 3 คือ B(11)+1 ได้ C(12)
-หลักที่ 4 คือ 3+8 ได้ B(11)
-หลักที่ 5 คือ A(10)+6 ได้ 16 (เลข 16 เท่ากับ
ฐานสิบหก ต้องเอาเลข 16-16=0) ผลลัพธ์คือ
0 (*ถ้าลบเลขฐานต้องทด 1)
-หลักที่ 6 คือ 7+9 ได้ 16 บวกตัวทดอีก 1
เท่ากับ 17 (เลข 17 เกินฐานสิบหก ต้องเอาเลข
- 23. 1.9 การลบเลขฐานต่างๆ
การลบเลขฐานสอง
ตัวอย่างที่ 1.23 จงลบเลข
ฐานสอง ดังนี้
(1101101)2 -
(1011110)2
วิธีทำ 1 1 0 1 1 0 1 2
1 0 1 1 1 1 0 2
0 0 0 1 1 1 1 2
** วิธีการลบเลขฐานสอง
-หลักที่ 1 คือ 1-0=1
-หลักที่ 2 คือ 0-1 ไม่พอไปยืมหลัก
หน้ามามีค่าเท่ากับฐาน 2 ฉะนั้น
2-1=1
-หลักที่ 3 คือ 1 ถูกยืมไปแล้ว มีค่า
เป็น 0 ทำให้ 0-1 ไม่พอไปลืมหลัก
หน้ามามีค่าเป็น 2 ฉะนั้น 2-1=1
-หลักที่ 4 คือ 1 ถูกยืมไปแล้ว มีค่า
เป็น 0 ทำให้ 0-1 ไม่พอไปลืมหลัก
หน้ามามีค่าเป็น 2 ฉะนั้น 2-1=1
-หลักที่ 5 คือ 0-1ไม่พอไปยืมหลัก
หน้ามาเป็น 2 แต่ 2 ถูกยืมไปแล้ว
1 จึงมีค่าเป็น 1 ฉะนั้น 1-1=0
-หลักที่ 6 คือ เลข 1 ถูกยืมไปจึงมี
-
2
0
2
0
2
2
1
0
- 24. 1.9 การลบเลขฐานต่างๆ
การลบเลขฐานแปด
ตัวอย่างที่ 1.24 จงลบเลข
ฐานแปด ดังนี้
(6253)8 - (4736)8
วิธีทำ 6 2 5 3 8
4 7 3 6 8
1 3 1 58
** วิธีการลบเลขฐานแปด
-หลักที่ 1 คือ 3-6 ไม่พอ ไปยืม
หลักหน้ามามีค่าเท่ากับฐาน 8
ทำให้หลักที่ 1 มีค่าคือ 8+3=11ฉะ
นั้น 11-6=5
-หลักที่ 2 คือ 5 ถูกยืมไปแล้ว เหลือ
4 ฉะนั้น 4-3=1
-หลักที่ 3 คือ 2-7 ไม่พอ ไปยืม
หลักหน้ามามีค่าเท่ากับฐาน 8
ทำให้หลักนี้ มีค่าคือ 8+2=10ฉะนั้
น 10-7=3
-หลักที่ 4 คือ 6 ถูกยืมไปแล้ว เหลือ
5 ฉะนั้น 5-4=1
-
8
4
8
5
- 25. 1.9 การลบเลขฐานต่างๆ
การลบเลขฐานสิบหก
ตัวอย่างที่ 1.25 จงลบเลข
ฐานสิบหก ดังนี้
(77AE)16 -
(5B0F)16
วิธีทำ 7 7 A E 16
5 B 0 F 16
1 C 9 F 16
** วิธีการลบเลขฐานสิบหก
-หลักที่ 1 คือ E(14)-F(15) ไม่พอ
ไปยืมหลักหน้ามามีค่าเท่ากับฐาน
16 ทำให้หลักที่ 1 มีค่าคือ
16+14=30 ฉะนั้น 30-F(15)=F
-หลักที่ 2 คือ A ถูกยืมไปแล้ว เหลือ
9 ฉะนั้น 9-0=9
-หลักที่ 3 คือ 7-B(11) ไม่พอ ไป
ยืมหลักหน้ามามีค่าเท่ากับฐาน 16
ทำให้หลักนี้มีค่าคือ 16+7=23
ฉะนั้น 23-B(11)=C
-หลักที่ 4 คือ 7 ถูกยืมไปแล้ว เหลือ
6 ฉะนั้น 7-6=1
16
9
6
-
16
- 26. เนื่องจากเลขฐานสองเป็นระบบตัวเลขที่ใช้ในเครื่อง Computer ดังนั้น เมื่อใช้
เครื่อง
Computer ทำการลบเลข Binary ก็ต้องมีวงจรลบแยกออกต่างหากจากวงจรบวก
ซึ่งจะมีความ
ยุ่งยากเกิดขึ้น เพราะมีเครื่องหมายติดมาด้วย วิธีที่นิยมก็คือ การบวกหรือการลบ เรา
ใช้วิธีการ
บวกแต่เพียงอย่างเดียว ตัวเลขที่เป็นค่าลบ เราใช้ Complement แทนผลลัพธ์จะได้
ค่า
เครื่องหมายติดมาด้วย
Complement คืออะไร
Complement ในระบบเลข Binary มีอยู่ 2 แบบ คือ 1's Complement และ
2's Complement
1's Complement คือการสลับสภาวะของสัญญาณ กล่าวคือ สัญญาณ 1
เปลี่ยนเป็นสัญญาณ 0 และสัญญาณ 0 เปลี่ยนเป็นสัญญาณ 1
2's Complement คือ ผลบวกของ 1's Complement กับเลข 1 ทั้งนี้เพื่อ
ประโยชน์สำหรับทำการลบเลข และเป็นการแสดงค่าเลขที่เป็นค่าลบในระบบ
คอมพิวเตอร์
1.10 Complement
- 27. ตัวอย่างที่ 1.26 จงหาค่า 1's Complement และ 2's
Complement ของ (01101)2
วิธีทำ 1's Complement ของ (01101)2 =
(10010)2 #
2's Complement ของ (01101)2 =
(10010)2 + (1)2 = (10011)2 #
1.11 การลบเลขฐานสองโดยใช้ 1’s Complement มีวิธีการดังนี้
ก. หา 1's Complement ของตัวลบ ถ้าจำนวน bit ของตัวลบมีน้อยกว่าตัว
ตั้ง ก็ต้องทำจำนวน bit ของตัวลบให้เท่ากับจำนวน bit ของตัวตั้งก่อน
ข. นำตัวตั้งมาบวกกับ ตัวที่หา 1' s Complement ได้จากข้อ ก.
ค. ผลบวกจากข้อ ข. ถ้ามี End around carry (ตัวทดตัวสุดท้าย) ก็ให้นำ
มาบวกกับ bit ที่มีนัย ความสำคัญต่ำสุด (LSD) ผลบวกที่ได้ก็คือ ผลลัพธ์ตาม
ต้องการ และมีค่าเป็นบวก
ง. ผลบวกจากข้อ ข. ถ้าไม่มี End around carry ก็ให้หา 1's
Complement ของผลบวกนั้น ซึ่งจะเป็นผลลัพธ์ที่ต้องการ และมีค่าเป็นลบ
1.10 Complement
- 28. ตัวอย่างที่ 1.27 จงลบเลขฐานสอง (110111)2 – (100101)2โดยใช้
1's complement
วิธีทำ หา 1's Complement ของตัวลบ (100101)2 =
(011010)2
1101112
0110102
1 0100012
12
0100102
นั่นคือ (110111)2 – (100101)2 = (10010)2
1.11 การลบเลขฐานสองโดยใช้ 1’s
Complement
ตัวทดตัวสุดท้าย
+
+
- 29. 1.11 การลบเลขฐานสองโดยใช้ 1’s
Complement
ตัวอย่างที่ 1.28 จงลบเลขฐานสอง (101101)2 – (110010)2
โดยใช้ 1's complement
วิธีทำ หา 1's Complement ของตัวลบ (110010)2 =
(001101)2
1011012
0011012
1110102
นำ (111010)2 หา 1's Complement = (000101)2
นั่นคือ (101101)2 – (110010)2 = - (101)2
+
- 30. มีวิธีการดังนี้
ก. หา 2's complement ของตัวลบ ถ้าจำนวน bit ของตัวลบมีน้อย
กว่าตัวตั้ง ก็ต้อง
ทำจำนวน bit ของตัวลบให้เท่ากับจำนวน bit ของตัวตั้งเสียก่อน
ข. นำตัวตั้งมาบวกกับ 2's complement ของตัวลบที่ได้จากข้อ ก.
ค. ผลบวกจากข้อ ข. ถ้ามีตัวสุดท้าย (End around carry) ให้ตัด
ทิ้ง ที่เหลือก็คือ
ผลลัพธ์ตามต้องการและมีค่าเป็นบวก
ง. ผลบวกจากข้อ ข. ถ้าไม่มี End around carry ก็ให้หา 2's
complement ของเลข
ผลบวกนั้น ได้เท่าไรก็คือผลลัพธ์ตามต้องการ และมีค่าเป็นลบ
1.12 การลบเลขฐานสองโดยใช้ 2’s
Complement
- 31. 1.12 การลบเลขฐานสองโดยใช้ 2’s
Complement
ตัวอย่างที่ 1.29 จงลบเลขฐานสอง (110111)2 –
(100101)2โดยใช้ 2's complement
วิธีทำ หา 2's Complement ของตัวลบ (100101)2
= (011011)2
1101112
0110112
1 0100102
นั่นคือ (110111)2 – (100101)2 = (10010)2
ตัวทดตัวสุดท้าย
ตัดทิ้ง
+
- 32. 1.12 การลบเลขฐานสองโดยใช้ 2’s
Complement
ตัวอย่างที่ 1.30 จงลบเลขฐานสอง (101101)2 –
(110010)2โดยใช้ 2's complement
วิธีทำ หา 2's Complement ของตัวลบ (110010)2
= (001110)2
1011012
0011102
1110112
นำ (111011)2 หา 2's Complement = (000101)2
นั่นคือ (101101)2 – (110010)2 = - (101)2
+