ดิจิตอล + เลขฐาน บทที่ 2
ดิจิตอล เป็นภาษาคอมพิวเตอร์ มีข้อมูล 0 และ 1 เท่านั้น ข้อมูลทุกอย่างอยู่ในรูปแบบของดิจิตอลหมด ไฟล์ข้อมูล,รูปภาพ,เสียง,โปรแกรม ดังนั้นข้อมูลต่างๆสามารถเชื่อมโยงกันได้ เช่นกล้องดิจิตอล,มือถือ,คอมพ์
บิท หน่วยของข้อมูลที่เล็กที่สุด จำนวนของเลขฐานสอง ยกตัวอย่าง 00100 = 5 บิท ในทางอิเล็กทรอนิกส์จะแทนด้วยแรงดันไฟฟ้า สูง-ต่ำ 8 บิท = 1 ไบท์
เลขฐาน (digit) จำนวนหลักของตัวเลข เลขฐาน 2,8,10,16 ที่เราใช้เป็นปกติคือเลขฐาน 10 ในคอมพิวเตอร์เป็นเลขฐาน 2,8,16 แต่ที่เล็กที่สุดคือเลขฐาน 2
เลขฐาน 10 เราใช้กันในชีวิตประจำวัน เลข 0->9 เมื่อเลยไปก็ใช้การทดเช่น 10,11,..321, ไม่เหมาะกับคอมพิวเตอร์เพราะมีความเป็นอนาล็อก
การมองแบบเลขยกกำลัง 103 102 101 100 10-1 10-2 10-3 103 102 101 100 10-1 10-2 10-3 =1000 =100 =10 =1 . =0.1 =0.01 =0.001 Most Significant Digit Decimal point Least Significant Digit
เลขฐาน 2 เลข 0,1 เมื่อมีการทด 0,1,10,11,100,101,...เท่ากับ 0,1,2,3,4,5,6,.... จำนวนบิทเพิ่มขึ้นเรื่อยๆ
การมองแบบเลขยกกำลัง 23 22 21 20 2-1 2-2 2-3 23 22 21 20 2-1 2-2 2-3 =8 =4 =2 =1 . =1/2 =1/4 =1/8 Most Significant Bit Binary point Least Significant Bit
การนับของเลขฐาน 2
เลขฐาน 8 เลข 0,1,2,3,4,5,6,7 เมื่อมีการทด 0,1,2,3,4,5,6,7,10,11,....17,20,... ในการเขียนโปรแกรมนิยมใช้เลข 0 จำนวน 1 ตัวอยู่ด้านหน้าเช่น 023,01,045 เลขฐาน 8 จำนวน 1 ตัว สามารถสร้างได้จากเลขฐาน 2 จำนวน 3 ตัว
การมองแบบเลขยกกำลัง 83 82 81 80 8-1 8-2 8-3 83 82 81 80 8-1 8-2 8-3 =512 =64 =8 =1 . =1/8 =1/64 =1/512 Most Significant Digit Octal point Least Significant Digit
เลขฐาน 16 0,1,2,3,4,5,6,7,8,9,A,B,C,D,E,F เมื่อมีการทด 0,1,2,3,4,5,6,7,8,9,A,B,C,D,E,F,10,11,...1F,20,... ในการเขียนโปรแกรมนิยมใช้ 0x อยู่ด้านหน้าเช่น 0x34,0x5FC,0x864D เลขฐาน16 จำนวน 1 ตัวสามารถสร้างได้จากเลขฐาน 2 จำนวน 4 ตัว
การมองแบบเลขยกกำลัง 163 162 161 160 16-1 16-2 16-3 163 162 161 160 16-1 16-2 16-3 =4096 =256 =16 =1 . =1/16 =1/256 =1/4096 Most Significant Digit Hexadec. point Least Significant Digit
การแปลงระหว่างเลขฐาน 2 และ ฐาน 10 แปลงจากเลขฐาน 2 เป็นฐาน 10 นำ 1 หรือ 0 ไปคูณกับค่ากำลังของแต่ละหลัก เช่น หากเป็นหลักที่ 2 ก็คูณด้วย 2 ยกกำลัง 2 1 1 0 1 1 2 (binary) 24+23+0+21+20 = 16+8+0+2+1 = 2710 (decimal) 1 0 1 1 0 1 0 1 2 (binary) 27+0+25+24+0+22+0+20 = 128+0+32+16+0+4+0+1 = 18110 (decimal)
แปลงจากเลขฐาน 10 เป็นฐาน 2 45 10 = 32 + 0 + 8 + 4 +0 + 1 = 25+0+23+22+0+20 = 1 0 1 1 0 12 หาได้โดยการแยกตัวประกอบ ให้เข้ากับค่าในแต่ละหลัก
การแปลงเลขฐาน 10 เป็นฐาน 2 โดยการหารด้วย 2 ตลอด 25/ 2 = 12+ remainder of 1 1 (Least Significant Bit) 12/ 2 = 6 + remainder of 0 0 6 / 2 = 3 + remainder of 0 0 3 / 2 = 1 + remainder of 1 1 1 / 2 = 0 + remainder of 1 1 (Most Significant Bit) Result 2510 = 1 1 0 0 12
Flowchart ของการกระทำในหน้าที่แล้ว
การแปลงเลขฐาน 8 เป็นเลขฐาน 10 308 = 3 x (81) + 0 x (80) = 2410 24.68 = 2 x (81) + 4 x (80) + 6 x (8-1) = 20.7510 คล้ายกับการแปลงจากเลขฐาน 2 เป็นฐาน 10 แต่เปลี่ยนเลข 2 เป็นเลข 8 (ค่าของตัวฐาน) ในการแปลงจากเลขฐาน 10 เป็นเลขฐาน 8 จะทำอย่างไร ?
การแปลงระหว่างเลขฐาน 2 และ ฐาน 8 เปรียบเทียบค่า การแปลงเลขฐาน 2 เป็นเลขฐาน 8 สังเกตว่าจะแบ่งเลขฐาน 2 ออกเป็นกลุ่มๆละ 3 ตัว Octal Digit 0 1 2 3 4 5 6 7 Binary Equivalent 000 001 010 011 100 101 110 111 100 111 0102 = (100) (111) (010)2 = 4 7 28
การแปลงเลขฐาน 10 เป็นฐาน 8 โดยวิธีหาร 8 ตลอด 177/8 = 22+ remainder of 1 1 (Least Significant Bit) 22/ 8 = 2 + remainder of 6 6 2 / 8 = 0 + remainder of 2 (Most Significant Bit) Result 17710 = 2618 Convert to Binary = 0101100012 เมื่อแปลงเป็นเลขฐาน 2
การแปลงระหว่างเลขฐาน 16 และฐาน 2 Hexadecimal Digit 0 1 2 3 4 5 6 7 Binary Equivalent 0000 0001 0010 0011 0100 0101 0110 0111 Hexadecimal Digit 8 9 A B C D E F Binary Equivalent 1000 1001 1010 1011 1100 1101 1110 1111 ตัวอย่างการแปลงเลขฐาน 2 เป็นฐาน 16 1011 0010 11112 = (1011) (0010) (1111)2 = B 2 F16
แปลงจากเลขฐาน 16 เป็นฐาน 2 ใช้การแยกออกเป็นกลุ่มของเลขฐาน 2 (เลขฐาน 16 จำนวน 1 ตัว = 4 ตัว) 5A816 = 0101 1010 1000 (Binary) = 2 6 5 0 (Octal) หากแปลงต่อเป็นเลขฐาน 8 จะได้
การแปลงเลขฐาน 16 เป็นฐาน 10 แยกตัวประกอบ 2AF16 = 2 x (162) + 10 x (161) + 15 x (160) = 68710 ใช้การหาร 16 ตลอด 378/16 = 23+ remainder of 10 A (Least Significant Bit) 23/ 16 = 1 + remainder of 7 7 1 / 16 = 0 + remainder of 1 1 (Most Significant Bit) Result 37810 = 17A16
โจทย์ การบ้าน อาจารย์กำหนดโจทย์การแปลงค่าแบบต่างๆแล้วแปลงพร้อมๆกัน อาจารย์กำหนดโจทย์แล้วสุ่มชื่อ นศ. มาแก้โจทย์ การบ้าน ให้ นศ.