ฐานสอง ฐานสิบ และฐานสิบหก: วิธีแปลงจากฐานหนึ่งไปอีกฐานหนึ่ง

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

อัปเดตเมื่อ:

ระบบเลขตามตำแหน่งคืออะไร

ในเลขฐานสิบ 4,095 เลข 4 ไม่ได้มีค่า 4 แต่มีค่า 4,000 เพราะอยู่ในหลักพัน แต่ละตำแหน่งคูณตัวเลขด้วยกำลังของ 10 (1, 10, 100, 1,000…) นี่คือระบบเลขตามตำแหน่ง และฐานคือจำนวนตัวเลขที่แตกต่างกันที่ใช้ ในฐานสิบคือสิบตัว

ฐานสองทำงานเหมือนกัน แต่ใช้ฐาน 2: มีเพียง 0 กับ 1 และแต่ละหลักมีค่าเป็นสองเท่าของหลักก่อนหน้า ฐานสิบหกใช้ฐาน 16: ตัวเลขสิบหกตัวคือ 0 ถึง 9 และตัวอักษร A ถึง F และแต่ละหลักมีค่าเป็น 16 เท่าของหลักก่อนหน้า คอมพิวเตอร์ทำงานเป็นฐานสองเพราะวงจรแค่ต้องแยกสองสถานะ (ปิดและเปิด) และฐานสิบหกเป็นวิธีเขียนบิตเหล่านั้นให้สั้นลง

ค่าของแต่ละหลัก ถ้าจำกำลังของ 2 ถึง 128 ได้ จะช่วยประหยัดการคำนวณเกือบทั้งหมด
ตำแหน่ง (จากขวาไปซ้าย)ค่าในฐานสองค่าในฐานสิบหก
ที่ 111
ที่ 2216
ที่ 34256
ที่ 484,096
ที่ 51665,536
ที่ 6321,048,576
ที่ 76416,777,216
ที่ 8128268,435,456

จากฐานสองเป็นฐานสิบด้วยมือ

เขียนตัวเลขแต่ละตัวพร้อมค่าของตำแหน่ง แล้วบวกเฉพาะตำแหน่งที่มี 1 ตัวอย่างกับ 1101: จากขวาไปซ้าย ตำแหน่งมีค่า 1, 2, 4 และ 8

  1. เขียนตัวเลข และใต้ตัวเลขเขียนค่าของแต่ละตำแหน่ง: 1 1 0 1 อยู่เหนือ 8 4 2 1
  2. ดูว่าแต่ละตำแหน่งมีอะไร: 1 ในหลักของ 8, 1 ในหลักของ 4, 0 ในหลักของ 2 และ 1 ในหลักของ 1
  3. ข้ามตำแหน่งที่มี 0 (ในที่นี้คือหลักของ 2)
  4. บวกกัน: 8 + 4 + 0 + 1 = 13 ดังนั้น 1101 ในฐานสองคือ 13 ในฐานสิบ

ถ้ามีหลักมากขึ้นก็ทำเหมือนกัน: 11111111 คือ 128 + 64 + 32 + 16 + 8 + 4 + 2 + 1 = 255 ซึ่งเป็นค่าสูงสุดที่ใส่ใน 8 บิตได้ และ 10110110 คือ 128 + 32 + 16 + 4 + 2 = 182

จากฐานสิบเป็นฐานสองด้วยการหารต่อเนื่อง

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

อ่านเศษจากล่างขึ้นบนจะได้ 101101 ตรวจสอบโดยบวก: 32 + 8 + 4 + 1 = 45

มีวิธีอื่นที่หลายคนชอบมากกว่า คือลบกำลังของ 2 จากมากไปน้อย สำหรับ 200: ใส่ 128 ได้ (เหลือ 72) ใส่ 64 ได้ (เหลือ 8) ใส่ 32 และ 16 ไม่ได้ แต่ใส่ 8 ได้ (เหลือ 0) ตำแหน่งที่ใช้คือ 128, 64 และ 8 ดังนั้น 200 = 11001000

ฐานสิบหก: ตัวเลขสิบหกตัวและตารางไว้เปิดดู

เนื่องจากไม่มีเลขสำหรับ 10 ถึง 15 จึงใช้ตัวอักษร A, B, C, D, E และ F เลขฐานสิบหกหนึ่งหลักเท่ากับสี่บิตพอดี (เรียกว่า «nibble») จึงสะดวกมาก ไบต์ซึ่งมี 8 บิตเขียนได้ด้วยเลขฐานสิบหกเพียงสองหลัก

ถ้าจะแปลงฐานสิบหกเป็นฐานสิบ ให้คูณแต่ละหลักด้วยกำลังของ 16 ตามตำแหน่งแล้วบวกกัน เช่น 3F = 3 × 16 + 15 = 63 และ A3 = 10 × 16 + 3 = 163

จาก 0 ถึง 15 ในสี่ฐานที่เครื่องมือแสดง
ฐานสิบฐานสอง (4 บิต)ฐานแปดฐานสิบหก
0000000
1000111
2001022
3001133
4010044
5010155
6011066
7011177
81000108
91001119
10101012A
11101113B
12110014C
13110115D
14111016E
15111117F

ทำไมจึงใช้ฐานสิบหก: ไบต์ สี และที่อยู่

1 ไบต์คือ 8 บิต มีค่าตั้งแต่ 0 ถึง 255 (00000000 ถึง 11111111) การเขียนบิตด้วยมือช้าและพลาดง่าย ในฐานสิบหกไบต์เดียวกันเป็นเพียงสองตัวอักษร ตั้งแต่ 00 ถึง FF ถ้าจะแปลงฐานสองเป็นฐานสิบหก ให้แบ่งบิตเป็นกลุ่มละสี่บิตจากด้านขวา แล้วแทนแต่ละกลุ่มด้วยเลขจากตาราง ตัวอย่าง: 11010111 แบ่งเป็น 1101 และ 0111 ซึ่งคือ D และ 7 จึงเป็น D7 ในฐานสิบคือ 13 × 16 + 7 = 215

กรณีที่รู้จักกันดีที่สุดคือสีบนเว็บ ใน #FF8800 มีสามไบต์: FF สำหรับสีแดง (255), 88 สำหรับสีเขียว (136) และ 00 สำหรับสีน้ำเงิน (0) เป็นสีส้มสด คือแดงเต็มที่ เขียวมากกว่าครึ่งเล็กน้อย และไม่มีน้ำเงิน เลขฐานสิบหกยังปรากฏในที่อยู่หน่วยความจำ รหัสข้อผิดพลาด และตัวระบุเครือข่ายด้วย

จากข้อความเป็นเลขฐานสองด้วย ASCII

คอมพิวเตอร์เก็บอักษรแต่ละตัวเป็นตัวเลข และเก็บตัวเลขนั้นเป็นบิต ในตาราง ASCII ตัว A คือ 65 ซึ่งในฐานสอง 8 บิตคือ 01000001 คำว่า «Hi» มีสองตัวอักษร: H คือ 72 (01001000) และ i คือ 105 (01101001) จึงเขียนเป็น 01001000 01101001 ส่วน «Hola» คือ 72, 111, 108 และ 97 หรือ 01001000 01101111 01101100 01100001 หรือในฐานสิบหกคือ 48 6F 6C 61

เครื่องมือใช้การเข้ารหัส UTF-8: สำหรับตัวอักษรอังกฤษพื้นฐาน อักขระแต่ละตัวใช้หนึ่งไบต์ 8 บิต แต่ตัวอักษร ñ ตัวอักษรที่มีเครื่องหมายกำกับ หรืออีโมจิใช้หลายไบต์ จึงได้มากกว่า 8 บิต เช่น ñ คือสองไบต์: 11000011 10110001 (C3 B1 ในฐานสิบหก)

วิธีทำทั้งหมดนี้ด้วยเครื่องมือ

ตัวแปลง «ฐานสอง ฐานสิบ และฐานสิบหก» ใช้ตรวจการคำนวณด้วยมือ หรือแก้ตัวเลขยาว ๆ โดยไม่ผิดพลาดได้

  1. พิมพ์ตัวเลขในช่องของฐานนั้น: «ฐานสิบ (ฐาน 10)», «ฐานสอง (ฐาน 2)», ฐานแปด หรือ «ฐานสิบหก (ฐาน 16)» อีกสามช่องจะเติมให้เอง
  2. ถ้าตัวเลขไม่ตรงกับฐาน (เช่น 2 ในฐานสอง) เครื่องมือจะแจ้งเตือน
  3. สำหรับข้อความ ให้พิมพ์ในช่อง «ข้อความ» แล้วดู «ฐานสอง (8 บิตต่ออักขระ)» และฐานสิบหกแบบไบต์ นอกจากนี้ยังวางบิตเป็นกลุ่มละ 8 เพื่อแปลงกลับเป็นข้อความได้
  4. สำหรับฐานแปลก ๆ ใช้ «เลขฐานใดก็ได้ (ฐาน 2 ถึง 36)»: เลือกฐานต้นทาง ฐานปลายทาง และตัวเลข

ข้อจำกัด: แปลงได้เฉพาะจำนวนเต็มที่ไม่ติดลบ (ไม่มีทศนิยมและเครื่องหมาย) และไม่เติมศูนย์ข้างหน้าให้ ดังนั้นถ้าต้องการ 8 บิตคงที่ ต้องเติมเอง (13 คือ 00001101) ไม่มีสิ่งที่พิมพ์ออกจากเบราว์เซอร์ของคุณ

ข้อผิดพลาดที่พบบ่อย

แบบฝึกหัดพร้อมเฉลยสำหรับฝึก

ลองทำแต่ละข้อก่อนดูคำตอบ แล้วตรวจสอบด้วยเครื่องมือ

คำถามที่พบบ่อย

แปลง 1101 จากฐานสองเป็นฐานสิบได้อย่างไร

บวกค่าของตำแหน่งที่มี 1: 8 + 4 + 1 = 13 หลักที่สองจากขวาเป็น 0 จึงไม่บวกค่า 2

255 ในฐานสองและฐานสิบหกคืออะไร

255 คือ 11111111 ในฐานสอง และ FF ในฐานสิบหก เป็นค่าสูงสุดที่ใส่ใน 1 ไบต์ 8 บิตได้

ทำไมฐานสิบหกจึงใช้ตัวอักษร

เพราะต้องมีสัญลักษณ์ที่แตกต่างกันสิบหกตัว แต่ระบบฐานสิบมีให้เพียงสิบตัว (0 ถึง 9) จึงให้ A เท่ากับ 10, B เท่ากับ 11, C เท่ากับ 12, D เท่ากับ 13, E เท่ากับ 14 และ F เท่ากับ 15

เขียนจำนวนที่แตกต่างกันได้กี่จำนวนด้วย 8 บิต

256 จำนวน ตั้งแต่ 0 ถึง 255 โดยทั่วไป n บิตแทนค่าได้ 2 ยกกำลัง n ค่า

เครื่องมือแปลงเลขติดลบหรือเลขทศนิยมได้ไหม

ไม่ได้ แปลงได้เฉพาะจำนวนเต็มที่ไม่ติดลบ สำหรับข้อความใช้ UTF-8 ตัวอักษรที่มีเครื่องหมายกำกับและอีโมจิจึงได้มากกว่า 8 บิต