การเปลี่ยนฐานของระบบเลข
ในกระบวนการทางดิจิตอลนั้น การติดต่อสื่อสารทางตัวเลข บางครั้ง เมื่อต่างระบบ ค่าตัวเลขก็อาจต่างกัน ระบบหนึ่งอาจใช้เลขฐานสิบ อีกระบบอาจใช้เลขฐานสองในการทำงานในระบบ ดังนั้นจึงจำเป็นที่จะต้องมีการเปลี่ยนเลขฐานเพื่อการติดต่อสื่อสารให้ทั้ง สองระบบเข้าใจกัน ดังนั้นจึงควรรู้วิธีการเปลี่ยนระบบเลขฐาน เพื่อเป็นความรู้พื้นฐานสำหรับการทำการเข้าใจเกี่ยวกับการทำงานของระบบ ดิจิตอลในคอมพิวเตอร์
สิ่งสำคัญในการเปลี่ยนฐานนั้น คือ ค่าประจำตำแหน่งของตัวเลขในแต่ละฐาน ซึ่งจะบอกให้เราทราบว่า ผลรวมจากค่าประจำตำแหน่งเป็นค่าจริงเท่าไหร่เมื่อเทียบกับค่าเลขในฐานอื่น ซึ่งค่าประจำตำแหน่งจะเขียนให้อยู่ในเลขยกกำลัง ได้ดังนี้
ตารางเทียบค่าเลขยกกำลัง |
รูปที่1.ตารางบอกค่าประจำตำแหน่งเลขฐาน ตารางจากตัวอย่างนี้มีประโยชน์เมื่อต้องการเปลี่ยนเลขฐานต่างๆเป็นฐานสิบ เช่น หากต้องการเปลี่ยนเลขฐานแปด คือ142(8) เป็นฐานสิบ สามารถเปลี่ยนโดย
วิธีทำ 142(8) = 1x(82) + 4x(81) + 2x(80)
= (1x64) + (4x8) + (2x1)
= 98(10)
และ ในเลขฐานอื่นๆก็ใช้วิธีเดียวกันในการเปลี่ยนฐานไปเป็นเลขฐานสิบ โดยใช้สูตรจากตารางรูปแบบของเลขนั้นๆ เช่น การเปลี่ยนเลขฐานสิบหกเป็นฐานสิบ คือ 356(16)
วิธีทำ 356(16) = 3x(162) + 5x(161) + 6x(160)
= 768 + 80 + 6
= 854(10)
จากข้างต้นการเปลี่ยนฐานนั้นมีวิธีแปลงที่อยู่ในรูปของการบวกของผลคูณ แต่ในการเปลี่ยนจากเลขฐานสิบเป็นเลขฐานต่างๆจะต้องใช้วิธีหารดังต่อไปนี้
ทำ โดยการเอาเลขที่ต้องการเปลี่ยน หารด้วยเลขฐานที่ต้องการ แล้วเอาผลหาร(ไม่คิดเศษ) มาหารด้วยเลขฐานที่ต้องการ ไปเรื่อยๆจนได้ 0 เศษที่ได้แต่ละครั้งจะเป็นค่าเลขฐานที่ต้องการ
เช่น ต้องการแปลง 26(10) เป็นเลขฐานสอง
วิธีทำ 2|26 เศษ 0 LSB มีนัยสำคัญน้อย
2|13 เศษ 1 .
2| 6 เศษ 0 .
2| 3 เศษ 1 .
2| 1 เศษ 1 MSB มีนัยสำคัญมาก
0
คำตอบคือ 26(10) = 11010(2)
ใน การแปลงเลขฐานสิบเป็นฐานอื่นๆก็ใช้วิธีเดียวกัน เช่นถ้าต้องการแปลงเป็นเลขฐานแปด เลขที่นำมาหารให้เปลี่ยนจาก 2 ไปเป็น 8 เท่านั้น ดังตัวอย่าง การแปลง 49(10)
วิธีทำ 8|49
8|6 เศษ 1 LSB มีนัยสำคัญน้อย
0 เศษ 6 MSB มีนัยสำคัญมาก
คำตอบคือ 49(10) = 61(8)
ในการเปลี่ยนเลขฐานสองเป็นเลขฐานสิบหกและเลขฐานแปด สามารถแปลงได้โดยการจัดชุดเลขฐานสองออกเป็นชุดๆ โดยหากเป็นการแปลงไปเป็นเลขฐานแปดให้จัดชุดเป็นขนาด 3 บิต และหากเป็นการแปลงไปเป็นเลขฐานสิบหกให้จัดชุดเป็นขนาด 4 บิต เมื่อจัดชุดได้แล้วก็แทนค่าเป็นเลขฐานที่ต้องการ โดยเทียบจากค่าดังต่อไปนี้
การเทียบค่าเลขฐานแปด กับเลขฐานสอง
0 000
1 001
2 010
3 011
4 100
5 101
6 110
7 111
การเทียบค่าเลขฐานสิบหก กับเลขฐานสอง
0 0000
1 0001
2 0010
3 0011
4 0100
5 0101
6 0110
7 0111
8 1000
9 1001
A 1010
B 1011
C 1100
D 1101
E 1110
F 1111
ตัวอย่าง จงแปลงเลขฐาน 1100001010110(2) เป็นเลขฐานแปด
วิธีทำ
1100001010110(2) = 1 100 001 010 110
= 001 100 001 010 110
= 1 4 1 2 6
= 14126(8)
จงแปลงเลขฐาน 1100001010110(2) เป็นเลขฐานสิบหก
วิธีทำ
1100001010110(2) = 1 1000 0101 0110
= 0001 1000 0101 0110
= 1 8 5 6
= 1856(16)
ส่วนในการแปลงค่าเลขฐานแปดและเลขฐานสิบหกเป็นเลขฐานสอง ก็สามารถแปลงได้โดยการทำกลับกัน เช่น แปลงค่าเลขต่อไปนี้ 6543(8),53F4(16) เป็นฐานสอง
วิธีทำ 6543(8) = 6 5 4 3
แทนค่าเป็น 3 บิต = 110 101 100 011
= 110101100011(2)
วิธีทำ 53F4(16) = 5 3 F 4
แทนค่าเป็น 4 บิต = 0101 0011 1111 0100
= 101001111110100(2)
การเปลี่ยนเลขฐานระหว่างเลขฐานสิบหก กับ เลขฐานแปด การเปลี่ยนระหว่างสองเลขฐานนี้จะต้องแปลงจากเลขฐานเดิมให้เป็นเลขฐานสองเสีย ก่อน แล้วค่อย แปลงค่าเลขฐานสองนั้นไปเป็นเลขฐานที่ต้องการ