440 likes | 707 Views
บทที่ 2 ระบบเลขจำนวน. Computer Number System. เนื้อหา. ฐานของระบบเลข ระบบเลขฐานสิบ ระบบเลขฐานสอง ระบบเลขฐานแปด ระบบเลขฐานสิบหก โครงสร้างข้อมูล. ฐานของระบบเลข. ให้ B เป็นฐานของเลขหลัก 0 คือเลขหลักที่น้อยที่สุด B-1 คือเลขหลักโตที่สุดที่จะใช้ได้ในระบบเลขฐาน B
E N D
บทที่ 2 ระบบเลขจำนวน Computer Number System BC320 Introduction to Computer Programming
เนื้อหา • ฐานของระบบเลข • ระบบเลขฐานสิบ • ระบบเลขฐานสอง • ระบบเลขฐานแปด • ระบบเลขฐานสิบหก • โครงสร้างข้อมูล BC320 Introduction to Computer Programming
ฐานของระบบเลข ให้ B เป็นฐานของเลขหลัก 0 คือเลขหลักที่น้อยที่สุด B-1 คือเลขหลักโตที่สุดที่จะใช้ได้ในระบบเลขฐาน B เลขฐาน B จะมีเลขโดดที่ใช้ได้ทั้งหมด B ตัวคือ 0,1,2,……,B-1 BC320 Introduction to Computer Programming
ระบบเลขฐานสิบ(Decimal System) ประกอบด้วยตัวเลข 10 ตัว ใช้สัญลักษณ์ 0,1,2,3,4,5,6,7,8 และ 9 ค่าประจำหลักเขียนได้ดังนี้ หลักหน่วย (หลักที่ 1) ค่าประจำหลัก 100 หลักสิบ (หลักที่ 2) ค่าประจำหลัก 101 หลักร้อย (หลักที่ 3) ค่าประจำหลัก 102 ………. ……………. ……………………. หลักที่ n ค่าประจำหลัก 10n-1 BC320 Introduction to Computer Programming
ตัวอย่างที่ 2.1 กำหนดให้ N = 8253 เขียนแทน N ด้วย 8253 = (8X103) + (2X102) + (5X101) + (3X100) = 8(1000) + 2(100) + 5(10) + 3 = 8000 + 200 + 50 + 3 BC320 Introduction to Computer Programming
การเขียนแทนเลขเศษส่วนและทศนิยมการเขียนแทนเลขเศษส่วนและทศนิยม 10-1 = 1/10 10-2 = 1/100 10-3 = 1/1000 10-4 = 1/10000 10-5 = 1/100000 BC320 Introduction to Computer Programming
ตัวอย่างที่ 2.2 จงเปลี่ยน 837.526 ให้อยู่ในรูปของการกระจาย 837.526= (8X102) + (3X10) + (7X100) + (5X10-1) + (2X10-2) + (6X10-3) = 800+30+7+5/10+2/100+6/1000 BC320 Introduction to Computer Programming
ระบบเลขฐานสอง(Binary System) ประกอบด้วยตัวเลข 2 ตัว คือ 0 และ 1 การอ่านเลขฐานสอง 10102อ่านว่า หนึ่ง-ศูนย์-หนึ่ง-ศูนย์ ฐาน สอง การนับเลขฐานสอง 0 1 10 11 100 …….. BC320 Introduction to Computer Programming
การเปลี่ยนเลขฐานสองเป็นเลขฐานสิบการเปลี่ยนเลขฐานสองเป็นเลขฐานสิบ ทำได้โดยคูณเลขฐานสองแต่ละตัว ด้วยน้ำหนักประจำตำแหน่งของตัวเลขตัวนั้น แล้วนำผลลัพธ์มารวมกัน BC320 Introduction to Computer Programming
ตัวอย่างที่ 2.3 จงเปลี่ยน 101112ให้เป็นเลขในระบบฐานสิบ 101112 = (1X24) + (0X23) + (1X22) + (1X21) + (1X20) = 16+0+4+2+1 = 23 101112 = 23 BC320 Introduction to Computer Programming
ตัวอย่างที่ 2.4 จงเปลี่ยน 0.10112ให้เป็นเลขในระบบฐานสิบ 0.10112 = (0X20) + (1X2-1) + (0X2-2) + (1X2-3) + (1X2-4) = 0 + 0.5 + 0 + 0.125 + 0.0625 = 0.6875 0.10112 = 0.6875 BC320 Introduction to Computer Programming
การเปลี่ยนเลขฐานสิบเป็นเลขฐานสองการเปลี่ยนเลขฐานสิบเป็นเลขฐานสอง ทำได้โดยเอาเลขฐานสิบตั้ง แล้วหารด้วยเลข 2 ไปเรื่อย ๆ จนกระทั่งผลลัพธ์เป็นศูนย์ ในการหารต้องเขียนเศษไว้ทุกครั้ง จากนั้นนำเศษตัวสุดท้ายมาเขียนเป็นเลขฐานสอง เริ่มตั้งแต่ตัวแรกเรียงกันไปจนหมดทุกตัว BC320 Introduction to Computer Programming
ตัวอย่างที่ 2.5 จงเปลี่ยน 25 ให้เป็นเลขในระบบฐานสอง 2 หาร 25 ได้ 12 ครั้ง เหลือเศษ 1 2 หาร 12 ได้ 6 ครั้ง เหลือเศษ 0 2 หาร 6 ได้ 3 ครั้ง เหลือเศษ 0 2 หาร 3 ได้ 1ครั้ง เหลือเศษ 1 2510 = 110012 BC320 Introduction to Computer Programming
การบวกเลขฐานสอง(Binary Addition) ขั้นที่ 1 บวกเลขหลักแรก (ขวามือสุด) ขั้นที่ 2 พิจารณาผลลัพธ์ของเลขที่บวก ถ้าผลบวกมากกว่า 1ให้ทดหลักถัดไป ขั้นที่ 3 ถ้ามีเลขอีกให้บวกต่อจนหมด หรือถ้ามีการทดจากขั้นที่ 2 นำมารวมกันก่อนจึงบวกจนหมด BC320 Introduction to Computer Programming
ตารางการบวกเลขฐานสอง BC320 Introduction to Computer Programming
ตารางข้อเท็จจริงของการบวกเลขฐานสองตารางข้อเท็จจริงของการบวกเลขฐานสอง BC320 Introduction to Computer Programming
ตัวอย่างที่ 2.6 จงหาผลบวกของ 110012 + 11012 ฐานสอง ฐานสิบ 110011(2)4 + 1(2)3 + 0 + 0 + 1(2)0 25 +1101 1(2)3 + 1(2)2 + 0 + 1(2)0 +13 10011038 BC320 Introduction to Computer Programming
ตัวอย่างที่ 2.7 จงหาผลบวกของ1100111012+101101112 110011101 + 10110111 1001010100 1100111012 +101101112 = 1001010100 BC320 Introduction to Computer Programming
ระบบเลขฐานแปด(Octal System) ประกอบด้วยตัวเลข 8 ตัว คือ 0,1, 2, 3, 4, 5, 6 และ 7 ค่าประจำหลัก ได้แก่ 80, 81, 82, 83,…., 8n-1 โดยเริ่มจากหลักขวามือสุดไปทางด้านซ้ายเป็นลำดับจนถึงหลักซ้ายมือ สุดคือหลักที่ n ที่มีค่าประจำหลักเป็น 8n-1 BC320 Introduction to Computer Programming
การเปลี่ยนเลขฐานแปดเป็นเลขฐานสิบการเปลี่ยนเลขฐานแปดเป็นเลขฐานสิบ ตัวอย่างที่ 2.8 จงเปลี่ยนเลข 324528 เป็นเลขฐานสิบ 324528 = (3X84) + (2X83) + (4X82) + (5X81) + (2X80) = (3X4,096) + (2x512) + (4X64) + (5X8) + (2X1) = 12,288 + 1,024 + 256 + 40 + 2 = 13,610 324528 = 13,610 BC320 Introduction to Computer Programming
ตัวอย่างที่ 2.9 จงเปลี่ยน 0.34728 เป็นเลขฐานสิบ 0.34728 = (3X8-1)+(4X8-2)+(7X8-3)+(2X8-4) = 0.375+0.0625+0.01367+0.0005 = 0.45167 0.34728 = 0.45167 BC320 Introduction to Computer Programming
การเปลี่ยนฐานระหว่างฐานแปดกับฐานสองการเปลี่ยนฐานระหว่างฐานแปดกับฐานสอง BC320 Introduction to Computer Programming
ตัวอย่างที่ 2.10 จงเปลี่ยนเลขฐานแปด 42068เป็นเลขฐานสอง ทำได้โดย แทนค่าเลขฐานแปดแต่ละตัวด้วยเลขฐานสองคราวละ 3 ตัว(จากตาราง) จะได้ผลลัพธ์เป็น 4 2 0 6 (100)(010)(000)(110) BC320 Introduction to Computer Programming
ตัวอย่างที่ 2.11 จงเปลี่ยนเลขฐานสอง 10 101 011 1112 ให้เป็นเลขฐานแปด ทำได้โดย แบ่งเลขฐานสองออกเป็นกลุ่มละ 3 ตัว เริ่มจากขวาสุด แล้วแทนแต่ละกลุ่มด้วยเลขฐานแปดที่เท่ากันจะได้ผลลัพธ์ (10)(101)(011)(111) 2 5 3 7 BC320 Introduction to Computer Programming
การบวกเลขฐานแปด ทำได้ 2 วิธี คือ • หาผลบวกของเลขฐานสิบ แล้วจึงค่อยแปลงเป็นเลขฐาน 8 • แปลงผลบวกของเลขฐานสิบ ถ้าผลบวกนั้นมากกว่า 7 ให้ลบด้วย 8 แล้วทด 1 ด้วยตำแหน่งต่อไป BC320 Introduction to Computer Programming
ตัวอย่างที่ 2.12 จงหาค่าของ • 58 + 48 • 68 + 78 • 38 + 28 • 78 + 48 • 58 + 28 • 78 + 38 BC320 Introduction to Computer Programming
วิธีทำ ข้อ (1) (2) (3) (4) (5) (6) 5 6 3 7 5 7 +4 +7 +2 +4 +2 +3 ผลบวกฐานสิบ 9 13 5 11 7 10 ค่าเปลี่ยนฐาน -8 -8 -0 -8 -0 -8 ผลบวกฐานแปด 11 15 5 13 7 12 BC320 Introduction to Computer Programming
ตัวอย่างที่ 2.13 จงหาค่าของ73468+52638 วิธีทำ 7 3 4 6 + 5 2 6 3 12 5 10 9 ผลบวกฐานสิบ - 8 -0 - 8 -8 ค่าเปลี่ยนฐาน 1 4 6 3 1 ผลบวกของฐานแปด BC320 Introduction to Computer Programming
ระบบเลขฐานสิบหก(Hexadecimal System) ประกอบด้วยตัวเลข 10 ตัว คือ 0,1,…9 และอักษรตัวพิมพ์ใหญ่ในภาษาอังกฤษ อีก 6 ตัว คือ A,B,C,D,E,F ซึ่ง A มีค่าเป็น 10 , B มีค่าเป็น 11, …… และ F มีค่าเป็น 15 BC320 Introduction to Computer Programming
ตารางแสดงค่ายกกำลังของ 16 BC320 Introduction to Computer Programming
การเปลี่ยนฐานระหว่างฐานสิบหกกับฐานสิบการเปลี่ยนฐานระหว่างฐานสิบหกกับฐานสิบ ตัวอย่างที่ 2.14 จงเปลี่ยนเลข 73D516ให้เป็นเลขฐานสิบ 73D516 =(7X163)+(3X162)+(13X161)+(5X160) = (7X4096)+(3X256)+(13X6)+(5X1) = 28672+768+208+5 =29653 BC320 Introduction to Computer Programming
ตัวอย่างที 2.15จงเปลี่ยนเลข 39.B816ให้เป็นเลขฐานสิบ 39.B816 = (3X161) + (9X160) + (11X16-1) + (8X16-2) = (3X16) + (9X1) + (11X0.0625) +(8X0.00390) = 48 + 9 + 0.6875 + 0.03125 = 57.71875 BC320 Introduction to Computer Programming
ตัวอย่างที 2.16จงเปลี่ยนเลขฐานสิบ9719 ให้เป็นเลขฐานสิบหก 16 หาร 9719 ได้ 607 ครั้ง เหลือเศษ 7 16 หาร 607 ได้ 37 ครั้ง เหลือเศษ 15 16 หาร 37 ได้ 2 ครั้ง เหลือเศษ 5 9719 = 25F716 BC320 Introduction to Computer Programming
ตารางเปรียบเทียบค่าเลขฐานต่าง ๆ BC320 Introduction to Computer Programming
ตารางเปรียบเทียบค่าเลขฐานต่าง ๆ (ต่อ) BC320 Introduction to Computer Programming
การเปลี่ยนฐานกลับไปมาระหว่างเลขฐานสิบหกกับเลขฐานสองการเปลี่ยนฐานกลับไปมาระหว่างเลขฐานสิบหกกับเลขฐานสอง ตัวอย่างที 2.16จงเปลี่ยนเลขฐานสิบหก3D5916 ให้เป็นเลขฐานสอง 3 D 5 9 0011 1101 0101 1001นั่นคือ 3D5916= 111101010110012 BC320 Introduction to Computer Programming
ตัวอย่างที่ 2.18 จงเปลี่ยนเลขฐานสอง 10 1101 0010 11102 ให้เป็นเลขฐานสิบหก (10)(1101)(0010) (1110 ) 2 D 2 E นั่นคือ10 1101 0010 11102 = 2D2E BC320 Introduction to Computer Programming
การบวกเลขฐานสิบหก ทำได้ 2 วิธี คือ • หาผลบวกของเลขฐานสิบ แล้วจึงค่อยแปลงเป็นเลขฐาน 16 • แปลงผลบวกของเลขฐานสิบ ถ้าผลบวกนั้นมากกว่า 15 ให้ลบด้วย 16 แล้วทด 1 ด้วยตำแหน่งต่อไป BC320 Introduction to Computer Programming
ตารางแสดงการบวกเลขฐานสิบหกตารางแสดงการบวกเลขฐานสิบหก BC320 Introduction to Computer Programming
ตัวอย่างที่ 2.19 จงหาผลบวกของเลขฐานสิบหกต่อไปนี้ • C + D • 3 + B • F + D • 1 + 4 + 6 • 1 + 5 + C • 1 + E + 6 BC320 Introduction to Computer Programming
ตัวอย่างที่ 2.20 จงหาผลบวกของเลขฐานสิบหกC878+72D9 วิธีทำC 8 7 8 + 7 2 D 9 19 10 20 17 ผลบวกฐานสิบ -16 -16 -16 -16 ค่าเปลี่ยนฐาน 13 B 5 1 ผลบวกของฐานสิบหก BC320 Introduction to Computer Programming
โครงสร้างข้อมูล Database File Record Field Byte/Char Bit BC320 Introduction to Computer Programming
Q&A • การบ้านท้ายบทที่ 2 ข้อใหญ่ 1,3,5,7 • (ข้อที่มีข้อย่อย ทำทุกข้อย่อย) ห้ามพิมพ์ส่ง • เขียนใส่กระดาษรายงาน • ลองโจทย์และขีดเส้นคั่นแต่ละข้อให้เรียบร้อย • เขียนชื่อ-นามสกุล Section เลขที่ มุมขวาบน • ติดแม็กส่งงานให้เรียบร้อย BC320 Introduction to Computer Programming