บทความยอดนิยม

วันพฤหัสบดีที่ 8 ธันวาคม พ.ศ. 2554

การเปลี่ยนฐานของระบบเลข


การเปลี่ยนฐานของระบบเลข
ในกระบวนการทางดิจิตอลนั้น การติดต่อสื่อสารทางตัวเลข บางครั้ง เมื่อต่างระบบ ค่าตัวเลขก็อาจต่างกัน ระบบหนึ่งอาจใช้เลขฐานสิบ อีกระบบอาจใช้เลขฐานสองในการทำงานในระบบ ดังนั้นจึงจำเป็นที่จะต้องมีการเปลี่ยนเลขฐานเพื่อการติดต่อสื่อสารให้ทั้ง สองระบบเข้าใจกัน  ดังนั้นจึงควรรู้วิธีการเปลี่ยนระบบเลขฐาน เพื่อเป็นความรู้พื้นฐานสำหรับการทำการเข้าใจเกี่ยวกับการทำงานของระบบ ดิจิตอลในคอมพิวเตอร์

สิ่งสำคัญในการเปลี่ยนฐานนั้น คือ ค่าประจำตำแหน่งของตัวเลขในแต่ละฐาน ซึ่งจะบอกให้เราทราบว่า ผลรวมจากค่าประจำตำแหน่งเป็นค่าจริงเท่าไหร่เมื่อเทียบกับค่าเลขในฐานอื่น ซึ่งค่าประจำตำแหน่งจะเขียนให้อยู่ในเลขยกกำลัง ได้ดังนี้
                      
ตารางเทียบค่าเลขยกกำลัง


                               รูปที่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)

การเปลี่ยนเลขฐานระหว่างเลขฐานสิบหก กับ เลขฐานแปด  การเปลี่ยนระหว่างสองเลขฐานนี้จะต้องแปลงจากเลขฐานเดิมให้เป็นเลขฐานสองเสีย ก่อน แล้วค่อย แปลงค่าเลขฐานสองนั้นไปเป็นเลขฐานที่ต้องการ