วิกิฮาวเป็น "wiki" ซึ่งหมายความว่าบทความหลายๆ บทความของเรานั้นเป็นการร่วมมือกันเขียนของผู้เขียนหลายคน ในการเขียนบทความชิ้นนี้ ผู้คน 93 คน ซึ่งบางคนไม่ขอเปิดเผยตัว ได้ร่วมกันเขียนและปรับปรุงเนื้อหาของบทความอย่างต่อเนื่อง
บทความนี้ถูกเข้าชม 377,561 ครั้ง
ระบบเลขฐานสิบ ประกอบด้วยเลขโดดพื้นฐานที่เป็นไปได้ทั้งหมด 10 ตัว (0,1,2,3,4,5,6,7,8, และ 9) ในแต่ละหลัก ในขณะที่ระบบเลขฐานสองนั้น จะมีค่าเป็นเลข 0 หรือ 1 เท่านั้นในแต่ละหลัก เนื่องจากระบบเลขฐานสองเป็นภาษาภายในระบบคอมพิวเตอร์อิเลคทรอนิกส์ โปรแกรมเมอร์มืออาชีพจึงควรเข้าใจวิธีแปลงเลขฐานสิบเป็นฐานสอง ลองมาดูขั้นตอนง่ายๆ เพื่อพิชิตการแปลงเลขฐานนี้กัน
ตั้งโจทย์. ตามตัวอย่างนี้ เราจะมาลองแปลงเลขฐานสิบ 15610 ให้กลายเป็นเลขฐานสอง เขียนเลขฐานสิบเป็นตัวตั้งในเครื่องหมาย “หารยาว” แบบกลับหัว เขียนตัวหารเป็นเลขฐานที่เราอยากจะแปลงให้เป็น (ในกรณีที่เราทำอยู่ คือเขียนเลข “2” สำหรับเลขฐานสอง) ด้านนอกส่วนโค้งของเครื่องหมายหาร
- จะเข้าใจวิธีนี้ได้ดีกว่าหากเขียนให้เห็นภาพบนกระดาษ และวิธีนี้ยังง่ายกว่าสำหรับคนที่เพิ่งหัดแปลงอีกด้วย เพราะอาศัยแค่การหารสองเท่านั้น
- เพื่อเลี่ยงความสับสนทั้งก่อนและหลังการแปลง ให้เขียนเลขของฐานที่แปลงห้อยไว้ใต้เลขแต่ละชุด ในกรณีนี้ เลขฐานสิบจะมีเลข 10 ห้อยอยู่ ในขณะที่เลขฐานสองจะมีเลข 2 เป็นตัวห้อย
การหาร. เขียนคำตอบซึ่งเป็นจำนวนเต็ม (ผลลัพธ์) ไว้ใต้เครื่องหมายหารสั้น และเขียนเศษ (0 หรือ 1) ทางขวามือของตัวตั้ง
- เนื่องจากเรากำลังหารด้วยสอง ถ้าตัวตั้งเป็นเลขคู่เมื่อไหร่ เศษจะเท่ากับ 0 และถ้าตัวตั้งเป็นเลขคี่ เศษจะเท่ากับ 1
หารไปเรื่อยๆ จนกระทั่งถึง 0. คำนวณต่อลงมาเรื่อยๆ โดยหารผลหารใหม่ด้วยสอง และเขียนเศษไว้ทางขวาของตัวตั้ง จะหยุดก็ต่อเมื่อผลหารเป็น 0 แล้วเท่านั้น
เขียนเลขฐานสองชุดใหม่ที่ได้มา. เริ่มจากเขียนเศษที่อยู่ล่างสุด อ่านไล่ขึ้นไปหาบนสุด จากตัวอย่าง คุณควรจะได้ผลลัพธ์ คือ 10011100 เลขชุดนี้เป็นเลขฐานสองที่มีค่าเท่ากับเลขฐานสิบ 156 หากเขียนร่วมกับตัวห้อยเลขฐาน จะได้เป็น 15610 = 100111002
- วิธีข้างต้นสามารถนำไปประยุกต์ใช้ได้กับการทำให้เลขฐานสิบกลายเป็นเลขฐานใดก็ได้ ในที่นี้ตัวหารเป็น 2 เพราะเรากำลังแปลงให้เป็นเลขฐานสอง แต่ถ้าอยากให้กลายเป็นเลขฐานอื่นๆ ให้เปลี่ยนตัวหารจาก 2 เป็นเลขของฐานที่อยากให้เป็น ตัวอย่างเช่น ถ้าอยากแปลงให้เป็นเลขฐานเก้า ให้ใช้เลข 9 เป็นตัวหารแทนเลข 2 แล้วผลที่ได้จะเป็นเลขในฐานที่ต้องการ
เริ่มต้นด้วยการทำตาราง. เขียนเลขสองยกกำลังใน “ตารางฐานสอง” จากขวาไปซ้าย เริ่มจาก 20 ซึ่งมีค่าตามการคำนวณเป็น "1" ค่อยๆ เพิ่มเลขชี้กำลังทีละหนึ่งในเลขสองยกกำลังแต่ละชุด เขียนลิสต์ตัวเลขไปเรื่อยๆ จนถึงเลขที่ใกล้กับเลขฐานสิบที่คุณต้องการแปลง สำหรับตัวอย่างนี้ เราจะมาแปลงเลขฐานสิบ 15610 ให้เป็นเลขฐานสอง
หาเลขสองยกกำลังที่มีค่ามากที่สุด. เลือกเลขสองยกกำลังที่มีค่ามากที่สุดและไม่เกินเลขที่ต้องการแปลง 128 เป็นเลขสองยกกำลังที่ไม่เกิน และมีค่าใกล้เคียงกับ 156 ที่สุด ดังนั้น ให้เขียนเลข 1 ไว้ใต้ช่องนี้ของตารางที่คุณเขียนไว้ เพื่อให้เป็นเลขฐานสองตัวแหน่งแรกสุดทางซ้ายมือ หลังจากนั้น ให้เอาตัวเลขที่ตั้งไว้ในตอนแรกลบด้วย 128 แล้วจะได้ 28
ขั้นต่อไปคือเลขสองยกกำลังที่มีค่าต่ำรองลงมา. ใช้เลขตัวใหม่ที่ได้ (28) ไล่ดูตามตารางว่ามีเลขในช่องไหนบ้าง ที่สามารถเอามาลบกับ 28 ได้ แล้วผลลัพธ์ออกมาไม่ติดลบ 28 ลบ 64 ไม่ได้ ดังนั้นให้เขียน 0 ไว้ใต้ช่อง 64 นั้นเพื่อให้เป็นเลขฐานสองหลักต่อไปที่อยู่ทางขวามือ ทำอย่างนี้จนกว่าจะเจอเลขที่เอามาลบกับ 28 ได้ แล้วผลลัพธ์ออกมาไม่ติดลบ
ลบเลขถัดไปที่สามารลบได้แล้วผลลัพธ์ออกมาไม่ติดลบ แล้วใส่ 1 ไว้ใต้ช่องของเลขนั้น. 16 สามารถนำไปลบกับ 28 ได้ แล้วผลลัพธ์ไม่ติดลบ ดังนั้น ให้เขียนเลข 1 ข้างใต้ช่องของ 16 แล้วเอา 28 ลบ 16 จะได้ 12 ต่อมา 8 สามารถนำไปลบกับ 12 ได้ โดยที่ผลลัพธ์ไม่ติดลบ ดังนั้นให้เขียนเลข 1 ไว้ใต้ช่อง 8 แล้วเอา 12 ลบ 8 จะได้ 4
ทำวิธีนี้ไปเรื่อยๆ จนสิ้นสุดตาราง. อย่าลืมเขียน 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