แปลงเลขฐาน 10 เป็นฐาน ต่างๆ

วิกิฮาวเป็น "wiki" ซึ่งหมายความว่าบทความหลายๆ บทความของเรานั้นเป็นการร่วมมือกันเขียนของผู้เขียนหลายคน ในการเขียนบทความชิ้นนี้ ผู้คน 93 คน ซึ่งบางคนไม่ขอเปิดเผยตัว ได้ร่วมกันเขียนและปรับปรุงเนื้อหาของบทความอย่างต่อเนื่อง

บทความนี้ถูกเข้าชม 377,561 ครั้ง

ระบบเลขฐานสิบ ประกอบด้วยเลขโดดพื้นฐานที่เป็นไปได้ทั้งหมด 10 ตัว (0,1,2,3,4,5,6,7,8, และ 9) ในแต่ละหลัก ในขณะที่ระบบเลขฐานสองนั้น จะมีค่าเป็นเลข 0 หรือ 1 เท่านั้นในแต่ละหลัก เนื่องจากระบบเลขฐานสองเป็นภาษาภายในระบบคอมพิวเตอร์อิเลคทรอนิกส์ โปรแกรมเมอร์มืออาชีพจึงควรเข้าใจวิธีแปลงเลขฐานสิบเป็นฐานสอง ลองมาดูขั้นตอนง่ายๆ เพื่อพิชิตการแปลงเลขฐานนี้กัน

  1. ตั้งโจทย์. ตามตัวอย่างนี้ เราจะมาลองแปลงเลขฐานสิบ 15610 ให้กลายเป็นเลขฐานสอง เขียนเลขฐานสิบเป็นตัวตั้งในเครื่องหมาย “หารยาว” แบบกลับหัว เขียนตัวหารเป็นเลขฐานที่เราอยากจะแปลงให้เป็น (ในกรณีที่เราทำอยู่ คือเขียนเลข “2” สำหรับเลขฐานสอง) ด้านนอกส่วนโค้งของเครื่องหมายหาร

    • จะเข้าใจวิธีนี้ได้ดีกว่าหากเขียนให้เห็นภาพบนกระดาษ และวิธีนี้ยังง่ายกว่าสำหรับคนที่เพิ่งหัดแปลงอีกด้วย เพราะอาศัยแค่การหารสองเท่านั้น
    • เพื่อเลี่ยงความสับสนทั้งก่อนและหลังการแปลง ให้เขียนเลขของฐานที่แปลงห้อยไว้ใต้เลขแต่ละชุด ในกรณีนี้ เลขฐานสิบจะมีเลข 10 ห้อยอยู่ ในขณะที่เลขฐานสองจะมีเลข 2 เป็นตัวห้อย

  2. การหาร. เขียนคำตอบซึ่งเป็นจำนวนเต็ม (ผลลัพธ์) ไว้ใต้เครื่องหมายหารสั้น และเขียนเศษ (0 หรือ 1) ทางขวามือของตัวตั้ง

    • เนื่องจากเรากำลังหารด้วยสอง ถ้าตัวตั้งเป็นเลขคู่เมื่อไหร่ เศษจะเท่ากับ 0 และถ้าตัวตั้งเป็นเลขคี่ เศษจะเท่ากับ 1

  3. หารไปเรื่อยๆ จนกระทั่งถึง 0. คำนวณต่อลงมาเรื่อยๆ โดยหารผลหารใหม่ด้วยสอง และเขียนเศษไว้ทางขวาของตัวตั้ง จะหยุดก็ต่อเมื่อผลหารเป็น 0 แล้วเท่านั้น

  4. เขียนเลขฐานสองชุดใหม่ที่ได้มา. เริ่มจากเขียนเศษที่อยู่ล่างสุด อ่านไล่ขึ้นไปหาบนสุด จากตัวอย่าง คุณควรจะได้ผลลัพธ์ คือ 10011100 เลขชุดนี้เป็นเลขฐานสองที่มีค่าเท่ากับเลขฐานสิบ 156 หากเขียนร่วมกับตัวห้อยเลขฐาน จะได้เป็น 15610 = 100111002

    • วิธีข้างต้นสามารถนำไปประยุกต์ใช้ได้กับการทำให้เลขฐานสิบกลายเป็นเลขฐานใดก็ได้ ในที่นี้ตัวหารเป็น 2 เพราะเรากำลังแปลงให้เป็นเลขฐานสอง แต่ถ้าอยากให้กลายเป็นเลขฐานอื่นๆ ให้เปลี่ยนตัวหารจาก 2 เป็นเลขของฐานที่อยากให้เป็น ตัวอย่างเช่น ถ้าอยากแปลงให้เป็นเลขฐานเก้า ให้ใช้เลข 9 เป็นตัวหารแทนเลข 2 แล้วผลที่ได้จะเป็นเลขในฐานที่ต้องการ

  1. เริ่มต้นด้วยการทำตาราง. เขียนเลขสองยกกำลังใน “ตารางฐานสอง” จากขวาไปซ้าย เริ่มจาก 20 ซึ่งมีค่าตามการคำนวณเป็น "1" ค่อยๆ เพิ่มเลขชี้กำลังทีละหนึ่งในเลขสองยกกำลังแต่ละชุด เขียนลิสต์ตัวเลขไปเรื่อยๆ จนถึงเลขที่ใกล้กับเลขฐานสิบที่คุณต้องการแปลง สำหรับตัวอย่างนี้ เราจะมาแปลงเลขฐานสิบ 15610 ให้เป็นเลขฐานสอง

  2. หาเลขสองยกกำลังที่มีค่ามากที่สุด. เลือกเลขสองยกกำลังที่มีค่ามากที่สุดและไม่เกินเลขที่ต้องการแปลง 128 เป็นเลขสองยกกำลังที่ไม่เกิน และมีค่าใกล้เคียงกับ 156 ที่สุด ดังนั้น ให้เขียนเลข 1 ไว้ใต้ช่องนี้ของตารางที่คุณเขียนไว้ เพื่อให้เป็นเลขฐานสองตัวแหน่งแรกสุดทางซ้ายมือ หลังจากนั้น ให้เอาตัวเลขที่ตั้งไว้ในตอนแรกลบด้วย 128 แล้วจะได้ 28

  3. ขั้นต่อไปคือเลขสองยกกำลังที่มีค่าต่ำรองลงมา. ใช้เลขตัวใหม่ที่ได้ (28) ไล่ดูตามตารางว่ามีเลขในช่องไหนบ้าง ที่สามารถเอามาลบกับ 28 ได้ แล้วผลลัพธ์ออกมาไม่ติดลบ 28 ลบ 64 ไม่ได้ ดังนั้นให้เขียน 0 ไว้ใต้ช่อง 64 นั้นเพื่อให้เป็นเลขฐานสองหลักต่อไปที่อยู่ทางขวามือ ทำอย่างนี้จนกว่าจะเจอเลขที่เอามาลบกับ 28 ได้ แล้วผลลัพธ์ออกมาไม่ติดลบ

  4. ลบเลขถัดไปที่สามารลบได้แล้วผลลัพธ์ออกมาไม่ติดลบ แล้วใส่ 1 ไว้ใต้ช่องของเลขนั้น. 16 สามารถนำไปลบกับ 28 ได้ แล้วผลลัพธ์ไม่ติดลบ ดังนั้น ให้เขียนเลข 1 ข้างใต้ช่องของ 16 แล้วเอา 28 ลบ 16 จะได้ 12 ต่อมา 8 สามารถนำไปลบกับ 12 ได้ โดยที่ผลลัพธ์ไม่ติดลบ ดังนั้นให้เขียนเลข 1 ไว้ใต้ช่อง 8 แล้วเอา 12 ลบ 8 จะได้ 4

  5. ทำวิธีนี้ไปเรื่อยๆ จนสิ้นสุดตาราง. อย่าลืมเขียน 1 ข้างใต้ช่องตัวเลขที่นำไปลบกับผลลัพธ์ใหม่ได้ และเขียน 0 ใต้ช่องตัวเลขที่นำไปลบกับผลลัพธ์ใหม่ไม่ได้

    การเปลี่ยนเลขฐานสองเป็นเลขฐานแปด

    หลักการ : จะต้องใช้เลขฐานสิบเป็นตัวกลางในการเปลี่ยน

                ตัวอย่าง :  (1011100)2 = (…)8

    1.      1.      เปลี่ยนเลขฐานสองเป็นเลขฐานสิบ

    (1011100)2 = 64 + 0 + 16 + 8 + 4 + 0 + 0

                      = (92)10

    2.      2.      เปลี่ยนฐานสิบเป็นเลขฐานแปด

          8    92                    เศษ      4

           8    11                   เศษ      3

           8     1                    เศษ      1

                    0                             

                                                     1    3   4

                ดังนั้น (1011100)2 = (134)8

    การเปลี่ยนเลขฐานสองเป็นเลขฐานแปดและฐานแปดเป็นเลขฐานสอง วิธีลัด

    เลขฐานแปด

    เลขฐานสอง

    0

    1

    2

    3

    4

    5

    6

    7

    000

    001

    010

    011

    100

    101

    110

    111

                            ตารางเปรียบเทียบเลขฐานแปดและเลขฐานสอง

                            จากตารางจะเห็นว่าเลขฐานแปดหนึ่งหลักสามารถแทนด้วยเลขฐานสองจำนวน 3 บิต

                            ตัวอย่าง : จงแปลงเลขฐานสองเป็นเลขฐานแปด

                                            (1011100) 2 =  (…)8

                                                    วิธีทำ :              001      011      100

                                                      1           3          4

                            ดังนั้น     (1011100) 2 =  (134)8

                            ตัวอย่าง  เปลี่ยนเลขฐานแปดเป็นเลขฐานสอง

                                          (6143)8 = (…)2

                            วิธีทำ                6          1          4          3

                                                   110       001     100       011

                            ดังนั้น  (6143)8 = (110001100011)2

    การเปลี่ยนเลขฐานสิบหกเป็นฐานสิบและเลขฐานสิบเป็นฐานสิบหก

    การเปลี่ยนเลขฐานสิบหกเป็นเลขฐานสิบ   

                                      หลักการ : นำค่าน้ำหนัก (Weight) ของเลขฐานสิบหกคูณด้วยเลขประจำ

     หลัก และนำผลที่ได้ทุกหลักมารวมกัน

                                      น้ำหนัก (Weight) : … 164  163   162  161  160  16-1 16-2 16-3…

                                       ตัวอย่าง   (6C)16 = (…)10

                                                    (6C)16   = (5X161) + (12X160)

                                                                = 80 + 12

                                                                = (92)10

                                        ดังนั้น    (6C)16   = (92)10

                                                                            ตัวอย่าง (0.3)16  = (…)10

    (0.3)16 (0.3)16 = 3X10-1

    = 3X0.0625

                                                                = (0.1875)10

                                        ดังนั้น    (0.3)16  = (0.1878)10

    การเปลี่ยนเลขฐานสิบเป็นเลขฐานสิบหก

                หลักการ : นำเลขฐานสิบมาเป็นตัวตั้งแล้วนำ 16 มาหาร เศษที่ได้จากการหาร จะเป็นค่า

        เลขฐานสิบหก ทำเช่นเดียวกับการเปลี่ยนเลขฐานสิบเป็นเลขฐานสอง

                ตัวอย่าง :  (92)10 = (…)16

                            วิธีทำ :                             16   92                      เศษ 12 =C

      16      5                      เศษ        5

            5   C

                            ดังนั้น (92)10 = (5C)16

                ตัวอย่าง             (0.7875)10                =          (….)16

                            วิธีทำ               

    ผลการคูณ

    ผลของจำนวนเต็ม

    0.7875 X 16  = 12.6

    0.6 X 16        = 9.6

    12 = C

    9

    0.6 X 16        = 9.6

    0.6 X 16        = 9.6

    9

    9

                ดังนั้น (0.7875)10 = (0.C9)16

    การเปลี่ยนเลขฐานสองเป็นฐานสิบหก และฐานสิบหกเป็นฐานสอง

    การเปลี่ยนเลขฐานแปดเป็นเลขฐานสอง

                            หลักการ :  จะต้องใช้เลขฐานสิบเป็นตัวกลาง 

                            ตัวอย่าง :  (5C)16 = (…)2

                                        1. เปลี่ยนเลขฐานสิบหกเป็นเลขฐานสิบ

                                             (5C)16          = (5X161) + (12X160)

                                                                = 80 + 12

                                                                = (92)10

                                        2. เปลี่ยนเลขฐานสิบเป็นเลขฐานสอง

                                             (92)10          = (…)2

                                              Weight       = 64  32  16  8  4  2  1

                                                                    64 + 0 + 16 +  8 + 4 + 0 + 0

                                               เลขฐานสอง =  1     0     1      1     1    0     0 

                                               ดังนั้น (5C)16          = (1011100)2

    การเปลี่ยนเลขฐานสองเป็นเลขฐานสิบหก

                หลักการ : ต้องใช้เลขฐานสิบเป็นตัวกลาง

    ตัวอย่าง :  (1011100)2 = (…)16

                                        1. เปลี่ยน (1011100)2เป็นเลขฐานสิบ

                                             (1011100)2 = (92)10

                                        2. เปลี่ยนเลขฐานสิบเป็นเลขฐานสิบหก

    16   92             เศษ 12 =C

    16    5              เศษ        5

                                                             0            

                                                                                                  5    C

                                               ดังนั้น (1011100)2  = (5C)16

    การเปลี่ยนเลขฐานสิบหกเป็นฐานสองและเลขฐานสองเป็นฐานสิบหกวิธีลัด

    เลขฐานแปด

    เลขฐานสอง

    0

    1

    2

    3

    4

    5

    6

    7

    8

    9

    A

    B

    C

    D

    E

    F

    0000

    0001

    0010

    0011

    0100

    0101

    0110

    0111

    1000

    1001

    1010

    1011

    1100

    1101

    1110

    1111

              ตารางเปรียบเทียบเลขฐานสิบหกกับเลขฐานสอง  

    จากตารางจะเห็นว่า เลขฐานสิบหกหนึ่งหลักสามารถจะแทนด้วยเลขฐานสองจำนวน 4 บิต

    ตัวอย่าง จงเปลี่ยน (1011100)2 เป็นเลขฐานสิบหก

    วิธีทำ    0101    1100

                   5          12

                    5            C                    

                ดังนั้น (1011100)2 = (5C)16

    ตัวอย่าง  จงเปลี่ยน (1011110111011)2 เป็นเลขฐานสิบหก

    วิธีทำ    0001    0111    1011    1011

                    1          7          11        11      

                      1         7            B         B   

                   ดังนั้น (1011110111011)2 = (17BB)16

    ตัวอย่าง จงเปลี่ยน (A95)16 เป็นเลขฐานสอง

    วิธีทำ                  A        9            5

                            1010    1001    0101

                ดังนั้น (A95)16 = (101010010101)2