การแปลงเลขฐาน

Download Report

Transcript การแปลงเลขฐาน

บทที่ 6
ระบบจำนวนและกำรแปลงเลขฐำน
ระบบจำนวนหรือระบบตัวเลข
ระบบจำนวนหรื อระบบตัวเลข คือตัวเลขต่ำงๆ ที่ใช้ ในกำรคำนวณเพื่อประยุกต์ใช้ ใน
งำนด้ ำนต่ำงๆ ระบบจำนวนมีควำมสำคัญอย่ำงมำกเพื่อในกำรใช้ งำนคำนวณ
ตัวเลขต่ำงๆ เพื่อทำกำรประมวลผลให้ ได้ ผลลัพธ์ที่จะนำไปใช้ งำน โดยทัว่ ไประบบ
ตัวเลขที่มนุษย์เรำรู้จกั มำกที่สดุ คือระบบตัวเลขฐำนสิบ (Decimal Number
System) คือเลข 0,1,2,3,4,5,6,7,8,9 รวมทังหมด
้
10 ตัว ต่อมำควำมก้ ำวหน้ ำทำง
เทคโนโลยีสมัยใหม่เครื่ องคอมพิวเตอร์ ได้ ถกู พัฒนำขึ ้น คอมพิวเตอร์ ทำงำนด้ วย
กระแสไฟฟ้ำดังนันจึ
้ งมีกำรแทนที่สภำวะของกระแสไฟฟ้ำได้ 2 สภำวะ คือสภำวะที่
ไม่มีกระแสไฟฟ้ำ และสภำวะที่มีกระแสไฟฟ้ำ และเพื่อให้ มนุษย์สำมำรถสัง่ งำน
คอมพิวเตอร์ ได้ ดังนันจึ
้ งได้ มีกำรสร้ ำงระบบตัวเลขที่นำมำแทนสภำวะของ
กระแสไฟฟ้ำโดย “0” จะแทนสภำวะไม่มีกระแสไฟฟ้ำ และ “1” จะแทนสภำวะที่มี
กระแสไฟฟ้ำ ดังนันระบบจ
้
ำนวนในคอมพิวเตอร์ โดยปกติจะเป็ นระบบเลขฐำนสอง
(Binary Number System)
ระบบจำนวน
 ระบบจำนวนของเลขฐำนสอง (Binary Number System) ประกอบด้ วย 2
ตัวเลข คือ 0 และ 1
 ระบบจำนวนของเลขฐำนแปด (Octal Number System) ประกอบด้ วย 8
ตัวเลข คือ 0,1,2,3,4,5,6,7
 ระบบจำนวนของเลขฐำนสิบ (Decimal Number System) ประกอบด้ วย
10 ตัวเลข คือ 0,1,2,3,4,5,6,7,8,9
 ระบบจำนวนของเลขฐำนสิบหก (Hexadecimal Number System)
ประกอบด้ วย 16 ตัวเลข คือ 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
ตัวอย่ ำงกำรเปรียบเทียบเลขฐำนต่ ำงๆ กับเลขฐำนสิบ
เลขฐำนสิบ
(Decimal)
0
1
2
3
4
5
6
7
8
9
10
11
12
13
เลขฐำนสอง
(Binary)
0
1
10
11
100
101
110
111
1000
1001
1010
1011
1100
1101
เลขฐำนแปด
(Octal)
0
1
2
3
4
5
6
7
10
11
12
13
14
15
เลขฐำนสิบหก
(Hexadecimal)
0
1
2
3
4
5
6
7
8
9
A
B
C
D
กำรแปลงเลขฐำน
กำรแปลงเลขฐำนเป็ นพื ้นฐำนที่สำคัญในกำรติดต่อสื่อสำรระหว่ำงมนุษย์
กับคอมพิวเตอร์ ให้ สำมำรถทำงำนร่วมกันได้ มนุษย์จะคุ้นเคยกับกำร
ทำงำนของตัวเลขในรูปของเลขฐำนสิบ ส่วนคอมพิวเตอร์ จะทำงำนใน
รูปแบบของเลขฐำนสอง ดังนันจึ
้ งจำเป็ นที่จะต้ องศึกษำเข้ ำใจหลักกำร
แปลงเลขฐำนในมำตรฐำนเดียวกันเพื่อให้ สำมำรถใช้ งำนคอมพิวเตอร์ ได้
อย่ำงมีประสิทธิภำพ
กำรแปลงเลขฐำนสิบเป็ นเลขฐำนสอง เลขฐำนแปด เลขฐำนสิบหก
กำรแปลงเลขฐำนสิบเป็ นเลขฐำนต่ำงๆ จะกระทำโดยใช้ วิธีกำรหำรด้ วยเลข
ฐำนที่ต้องกำรแปลง เช่นถ้ ำต้ องกำรแปลงเป็ นเลขฐำนสองก็จะเอำเลขสอง
เป็ นตัวหำร ถ้ ำต้ องกำรแปลงเป็ นเลขฐำนแปดก็จะเอำเลขแปดเป็ นตัวหำร
ถ้ ำต้ องกำรแปลงเป็ นเลขฐำนสิบหกก็จะเอำเลขสิบหกเป็ นตัวหำร โดยจะ
กระทำกำรหำรจนกว่ำจะไม่สำมำรถที่จะหำรได้ อีกต่อไป เศษที่เหลือจำก
กำรหำรแต่ละครัง้ คือคำตอบที่ต้องกำร โดยเศษที่เหลือจำกกำรหำรครัง้ แรก
เป็ นตัวที่มีนยั สำคัญน้ อยที่สดุ (Least Significant Digit หรื อ LSD) และ
เศษที่เหลือจำกกำรหำรครัง้ สุดท้ ำยเป็ นตัวที่มีนยั สำคัญสูงสุด (Most
Significant Digit หรื อ MSD)
ตัวอย่ ำงที่ 1.1 ให้ ทำกำรแปลงเลขฐำนดังนี ้ (37)10 = ( ? )2
ตัวหำร
2
37
เศษ
2
18
1
2
9
0
2
4
1
2
2
0
1
0
คำตอบ
(37)10 = (100101)2
ตัวอย่ ำงที่ 1.2 ให้ ทำกำรแปลงเลขฐำนดังนี ้ (50)10 = ( ? )8
ตัวหำร
8
8
50
6
เศษ
2
0
6
คำตอบ
(50)10 = ( 62 )8
ตัวอย่ ำงที่ 1.3 ให้ ทำกำรแปลงเลขฐำนดังนี ้ (87)10 = ( ? )16
ตัวหำร
16
16
87
5
เศษ
7
0
5
คำตอบ
(87)10 = ( 57 )16
กำรแปลงเลขฐำนสิบที่เป็ นทศนิยม
กำรแปลงเลขฐำนสิบที่เป็ นทศนิยม ถ้ ำต้ องกำรแปลงให้ เป็ นเลขฐำนอื่นๆ
จะกระทำโดยกำรใช้ วิธีกำรคูณจำนวนทศนิยมนันด้
้ วยเลขฐำนของเลขที่
ต้ องกำรแปลง โดยผลลัพธ์ของกำรคูณที่เป็ นเลขจำนวนเต็มคือคำตอบที่
ต้ องกำร

ตัวอย่ ำงที่ 1.4 ให้ ทำกำรแปลงเลขฐำนดังนี ้ (0.6875)10 = ( ? )2
0.6875
0.3750
X
0.7500
X
0.5000
X
X
2
2
2
2
1.3750
0.7500
1.5000
1.0000
คำตอบ
(0.6875)10 = (0.1011)2

ตัวอย่ ำงที่ 1.5 ให้ ทำกำรแปลงเลขฐำนดังนี ้ (0.9375)10 = ( ? )8
0.9375
0.5000
X
X
8
8
7.5000
4.0000
คำตอบ
(0.9375)10 = ( 0.74 )8

ตัวอย่ ำงที่ 1.6 ให้ ทำกำรแปลงเลขฐำนดังนี ้ (0.46875)10 = ( ? )16
0.46875
0.50000
X
X
16
16
7.50000
8.00000
คำตอบ
(0.46875)10 = ( 0.78 )16
กำรแปลงเลขฐำนสอง เลขฐำนแปด เลขฐำนสิบหก เป็ นเลขฐำนสิบ
กำรแปลงเลขฐำนใดๆ เป็ นฐำนสิบ สำมำรถทำได้ โดยกำรนำเอำเลขแต่ละ
ตำแหน่งของเลขฐำนนัน้ คูณด้ วยน ้ำหนักของเลขฐำนนันแล้
้ วนำมำรวมกัน
ทังหมดก็
้
จะได้ คำตอบตำมที่ต้องกำร
ตัวเลขในแต่ละหลักจะมีคำ่ น ้ำหนักที่ขึ ้นอยูก่ บั ตำแหน่งหลักและฐำน
(Base) ของตัวเลขนันตำมสมกำร
้
N  an r  an1r  ...  a1r  a0 r  a1r  ...  amr
n1
n
โดยที่
a
n
m
r
N
=
=
=
=
=
1
0
1
ค่ำของตัวเลขแต่ละหลัก
ตำแหน่งหลักสูงสุดของจำนวนเต็ม
ตำแหน่งหลักสูงสุดของทศนิยม
ฐำน (Base)
ขนำดของตัวเลข
m
เช่ น
7392)10
(125.21)10
(11001)2
(11010.11)2
(4021.2)5
(365F)16
(
=
=
=
=
=
=
(7x103 )+(3x102)+(9x101)+ (2x100)
(1x102) +(2x101)+(5x100)+(2x10-1)+(1x10-2)
(1x24)+ (1x23)+ (0x22)+ (0x21)+ (1x20)
(1x24)+(1x23)+(0x22)+(1x21)+(0x20)+(1x2-1)+(1x2-2)
(4x53)+(0x52)+(2x51)+(1x50)+(2x5-1)
(11x163)+(6x162)+(5x161)+(15x160)
ตัวอย่ ำงที่ 1.7 ให้ ทำกำรแปลงเลขฐำนดังนี ้ (110111)2 = ( ? )10
(110111)2
= (1×25)+(1×24)+(0×23)+(1×22)+(1×21)+(1×20)
= 32 + 16 + 0 + 4 +2 + 1
= 55
คำตอบ
(110110)2 = ( 55 )10
ตัวอย่ ำงที่ 1.8 ให้ ทำกำรแปลงเลขฐำนดังนี ้ (37)8 = ( ? )10
(37)8
= (3×81)+(7×80)
= 24 +7
= 31
คำตอบ
(37)8 = ( 31)10
ตัวอย่ ำงที่ 1.9 ให้ ทำกำรแปลงเลขฐำนดังนี ้ (6E)16 = ( ? )10
(6E)16
= (6×161)+(E×160)
= 96 +14
= 110
คำตอบ
(6E)16 = ( 110 )10
ตัวอย่ ำงที่ 1.10 ให้ ทำกำรแปลงเลขฐำนดังนี ้ (0.101)2 = ( ? )10
(0.101)2
= (1×2-1)+(0×2-2)+(1×2-3)
= 0.5 + 0 + 0.125
= 0.625
คำตอบ
(0.101)2 = ( 0.625 )10
ตัวอย่ ำงที่ 1.11 ให้ ทำกำรแปลงเลขฐำนดังนี ้ (0.63)8 = ( ? )10
(0.63)8
= (6×8-1)+(3×8-2)
= 0.75 + 0.046875
= 0.796875
คำตอบ
(0.63)8 = (0.796875)10
ตัวอย่ ำงที่ 1.12 ให้ ทำกำรแปลงเลขฐำนดังนี ้ (0.A5)16 = ( ? )10
(0.A5)16
= (10×16-1)+(5×16-2)
= 0.625 + 0.01953
= 0.64453
คำตอบ
(0.A5)16 = (0.64453)10
กำรแปลงเลขฐำนแปดเป็ นเลขฐำนสอง และกำรแปลง
เลขฐำนสองเป็ นเลขฐำนแปด
กำรแปลงเลขฐำนแปดเป็ นเลขฐำนสอง จะกระทำโดยใช้ กำรใช้ เลข 1 บิต
(Bit ย่อมำจำก Binary Digit) ของเลขฐำนแปดแทนด้ วยเลขฐำนสอง
จำนวน 3 บิต ดังนันกำรแปลงเลขฐำนแปดเป็
้
นเลขฐำนสอง และกำรแปลง
เลขฐำนสองเป็ นเลขฐำนแปด กระทำได้ โดยกำรแทนค่ำต่ำงๆ ดังแสดงใน
ตำรำงแสดงควำมสัมพันธ์ระหว่ำงเลขฐำนแปดกับเลขฐำนสอง
ตำรำงแสดงควำมสัมพันธ์ ระหว่ ำงเลขฐำนแปดกับเลขฐำนสอง
เลขฐำนแปด
(Octal)
0
1
2
3
4
5
6
7
เลขฐำนสอง
(Binary)
000
001
010
011
100
101
110
111
วิธีกำรแปลงเลขฐำนสองเป็ นฐำนแปด
วิธีกำรแปลงเลขฐำนสองเป็ นฐำนแปด จะทำกำรจัดกลุม่ ของเลขฐำนสองที
ละ 3 บิต โดยให้ จดั กลุม่ จำกบิตที่มีนยั สำคัญน้ อยที่สดุ (LSD) ไปบิตที่มี
นัยสำคัญสูงสุด (MSD) ถ้ ำจับกลุม่ ไม่ครบทีละ 3 บิต ให้ เพิ่มดิจิต 0 จน
ครบ 3 บิต
วิธีกำรแปลงเลขฐำนแปดเป็ นเลขฐำนสอง
วิธีกำรแปลงเลขฐำนแปดเป็ นเลขฐำนสองจะทำกำรแทนเลขแปดด้ วย
เลขฐำนสองจำนวน 3 บิต
ตัวอย่ ำงที่ 1.13 ให้ ทำกำรแปลงเลขฐำนดังนี ้
(01101001001.01010)2 = ( ? )8
0 1 1 0 1 0 0 1 0 0 1 . 0 1 0 1 0
001 = 1, 101 = 5, 001 = 1,001 = 1
010 = 2, 100 = 4
คำตอบ
(01101001001.01010)2 = (1511.24 )8
ตัวอย่ ำงที่ 1.14 ให้ ทำกำรแปลงเลขฐำนดังนี ้ (524.61)8 = ( ? )2
5 = 101, 2 = 010, 4 = 100
6 = 110, 1 = 001
คำตอบ
(524.61)8 = (101010100.110001)2
กำรแปลงเลขฐำนสิบหกเป็ นเลขฐำนสอง และกำรแปลง
เลขฐำนสองเป็ นเลขฐำนสิบหก
กำรแปลงเลขฐำนสิบหกเป็ นเลขฐำนสอง จะกระทำโดยใช้ กำรใช้ เลข 1 บิต
ของเลขฐำนสิบหกแทนด้ วยเลขฐำนสองจำนวน 4 บิต ดังนันกำรแปลง
้
เลขฐำนสิบหกเป็ นเลขฐำนสอง และกำรแปลงเลขฐำนสองเป็ นเลขฐำนสิบ
หก กระทำได้ โดยกำรแทนค่ำต่ำงๆ ดังแสดงในตำรำงควำมสัมพันธ์ระหว่ำง
เลขฐำนสิบหกกับเลขฐำนสอง
ตำรำงควำมสัมพันธ์ ระหว่ ำงเลขฐำนสิบหกกับเลขฐำนสอง
เลขฐำนสิบหก
(Hexadecimal)
0
1
2
3
4
5
6
7
8
9
A
B
C
D
E
F
เลขฐำนสอง
(Binary)
0000
0001
0010
0011
0100
0101
0110
0111
1000
1001
1010
1011
1100
1101
1110
1111
วิธีกำรแปลงเลขฐำนสองเป็ นฐำนสิบหก
วิธีกำรแปลงเลขฐำนสองเป็ นฐำนสิบหก จะทำกำรจัดกลุม่ ของเลขฐำนสอง
ทีละ 4 บิต โดยให้ จดั กลุม่ จำกบิตที่มีนยั สำคัญน้ อยที่สดุ (LSD) ไปบิตที่มี
นัยสำคัญสูงสุด (MSD) ดังรูปที่ 1.5 ถ้ ำจับกลุม่ ไม่ครบทีละ 4 บิต ให้ เพิ่ม
ดิจิต 0 ข้ ำงหน้ ำบิตที่มีนยั สำคัญสูงสุดจนครบ 4 บิต
กำรแปลงเลขฐำนสองเป็ นเลขฐำนสิบหก
กำรแปลงเลขฐำนสิบหกเป็ นเลขฐำนสอง
ตัวอย่ ำงที่ 1.15 ให้ ทำกำรแปลงเลขฐำนดังนี ้
(11101001000.01011)2 = ( ? )16
0111 = 7, 0100 = 4, 1000 = 8
0101 = 5, 1000 = 8
คำตอบ
(11101001000.01011)2 = ( 748.58 )8
ตัวอย่ ำงที่ 1.16 ให้ ทำกำรแปลงเลขฐำนดังนี ้ (524.61)16 = ( ? )2
5 = 0101, 2 = 0010, 4 = 0100
6 = 0110, 1 = 0001
คำตอบ
(524.61)8 = (010100100100.01100001)2
รูปแบบเทคนิคกำรแปลงเลขฐำน
เลขฐานสิ บ
(Decimal)
เลขฐานสอง
(binary)
เลขฐานแปด
(Octal)
เลขฐานสิ บหก
(Hexadecimal)
ตัวอย่ ำงที่ 1.17 ให้ ทำกำรแปลงเลขฐำนดังนี ้ (6504.327)8 = ( ? )16
แปลงเลขฐำนแปดเป็ นเลขฐำนสอง
6 = 110, 5 = 101, 0 = 000, 4 = 100
3 = 011, 2 = 010, 7 = 111
จะได้
(6504.327)8 = ( 110101000100.011010111 )2
จำกนันแปลงเลขฐำนสองเป็
้
นเลขฐำนสิบหก
คำตอบ
(6504.327)8 = ( D44.6B8 )16
แบบฝึ กหัดทบทวน
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
ระบบจำนวนคืออะไร
จงอธิบำยระบบจำนวนของเลขฐำนสอง เลขฐำนแปด เลขฐำนสิบ และเลขฐำนสิบหก
โดยระบบจำนวนของเลขแต่ละตัวประกอบด้ วยตัวเลขอะไรบ้ ำง
จงแปลงเลขฐำน (59)10 = ( ? )2
จงแปลงเลขฐำน (152)10 = ( ? )2
จงแปลงเลขฐำน (47)10 = ( ? )8
จงแปลงเลขฐำน (165)10 = ( ? )16
จงแปลงเลขฐำน (110101)2 = ( ? )10
จงแปลงเลขฐำน (1101110.1010)2 = ( ? )10
จงแปลงเลขฐำน (75)8 = ( ? )10
จงแปลงเลขฐำน (1A9)16 = ( ? )10
แบบฝึ กหัดทบทวน
12.
จงแปลงเลขฐำนต่ำงๆ ดังต่อไปนี ้
ฐำนสอง
ฐำนสิบหก
ฐำนสิบ
ฐำนแปด
168
AB
142
010100101111
http://www.udru.ac.th
เอกสำรอ้ ำงอิง
งำมนิจ อำจอินทร์ , ควำมรู้ท่ วั ไปเกี่ยวกับวิทยำกำรคอมพิวเตอร์ ., กรุงเทพฯ, 2542.
ธวัชชัย เลื่อนฉวี, และ อนุรักษ์ เถื่อนศิริ, ดิจติ อลเทคนิคเล่ ม 1., กรุงเทพฯ, ศุภำลัยมีเดียจำกัด,
2537.
ธีรวัฒน์ ประกอบผล, ดิจติ อลอิเล็กทรอนิกส์ ., กรุงเทพฯ, แมคกรอ-ฮิล อินเตอร์ เนชันแนล เอ็น
เตอร์ ไพร์ ส, อิงค์., 2540.
http://www.udru.ac.th
http://www.udru.ac.th