ระบบเลขตามตำแหน่งคืออะไร
ในเลขฐานสิบ 4,095 เลข 4 ไม่ได้มีค่า 4 แต่มีค่า 4,000 เพราะอยู่ในหลักพัน แต่ละตำแหน่งคูณตัวเลขด้วยกำลังของ 10 (1, 10, 100, 1,000…) นี่คือระบบเลขตามตำแหน่ง และฐานคือจำนวนตัวเลขที่แตกต่างกันที่ใช้ ในฐานสิบคือสิบตัว
ฐานสองทำงานเหมือนกัน แต่ใช้ฐาน 2: มีเพียง 0 กับ 1 และแต่ละหลักมีค่าเป็นสองเท่าของหลักก่อนหน้า ฐานสิบหกใช้ฐาน 16: ตัวเลขสิบหกตัวคือ 0 ถึง 9 และตัวอักษร A ถึง F และแต่ละหลักมีค่าเป็น 16 เท่าของหลักก่อนหน้า คอมพิวเตอร์ทำงานเป็นฐานสองเพราะวงจรแค่ต้องแยกสองสถานะ (ปิดและเปิด) และฐานสิบหกเป็นวิธีเขียนบิตเหล่านั้นให้สั้นลง
| ตำแหน่ง (จากขวาไปซ้าย) | ค่าในฐานสอง | ค่าในฐานสิบหก |
|---|---|---|
| ที่ 1 | 1 | 1 |
| ที่ 2 | 2 | 16 |
| ที่ 3 | 4 | 256 |
| ที่ 4 | 8 | 4,096 |
| ที่ 5 | 16 | 65,536 |
| ที่ 6 | 32 | 1,048,576 |
| ที่ 7 | 64 | 16,777,216 |
| ที่ 8 | 128 | 268,435,456 |
จากฐานสองเป็นฐานสิบด้วยมือ
เขียนตัวเลขแต่ละตัวพร้อมค่าของตำแหน่ง แล้วบวกเฉพาะตำแหน่งที่มี 1 ตัวอย่างกับ 1101: จากขวาไปซ้าย ตำแหน่งมีค่า 1, 2, 4 และ 8
- เขียนตัวเลข และใต้ตัวเลขเขียนค่าของแต่ละตำแหน่ง: 1 1 0 1 อยู่เหนือ 8 4 2 1
- ดูว่าแต่ละตำแหน่งมีอะไร: 1 ในหลักของ 8, 1 ในหลักของ 4, 0 ในหลักของ 2 และ 1 ในหลักของ 1
- ข้ามตำแหน่งที่มี 0 (ในที่นี้คือหลักของ 2)
- บวกกัน: 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:
- 45 ÷ 2 = 22 เศษ 1
- 22 ÷ 2 = 11 เศษ 0
- 11 ÷ 2 = 5 เศษ 1
- 5 ÷ 2 = 2 เศษ 1
- 2 ÷ 2 = 1 เศษ 0
- 1 ÷ 2 = 0 เศษ 1
อ่านเศษจากล่างขึ้นบนจะได้ 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
| ฐานสิบ | ฐานสอง (4 บิต) | ฐานแปด | ฐานสิบหก |
|---|---|---|---|
| 0 | 0000 | 0 | 0 |
| 1 | 0001 | 1 | 1 |
| 2 | 0010 | 2 | 2 |
| 3 | 0011 | 3 | 3 |
| 4 | 0100 | 4 | 4 |
| 5 | 0101 | 5 | 5 |
| 6 | 0110 | 6 | 6 |
| 7 | 0111 | 7 | 7 |
| 8 | 1000 | 10 | 8 |
| 9 | 1001 | 11 | 9 |
| 10 | 1010 | 12 | A |
| 11 | 1011 | 13 | B |
| 12 | 1100 | 14 | C |
| 13 | 1101 | 15 | D |
| 14 | 1110 | 16 | E |
| 15 | 1111 | 17 | F |
ทำไมจึงใช้ฐานสิบหก: ไบต์ สี และที่อยู่
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 ในฐานสิบหก)
วิธีทำทั้งหมดนี้ด้วยเครื่องมือ
ตัวแปลง «ฐานสอง ฐานสิบ และฐานสิบหก» ใช้ตรวจการคำนวณด้วยมือ หรือแก้ตัวเลขยาว ๆ โดยไม่ผิดพลาดได้
- พิมพ์ตัวเลขในช่องของฐานนั้น: «ฐานสิบ (ฐาน 10)», «ฐานสอง (ฐาน 2)», ฐานแปด หรือ «ฐานสิบหก (ฐาน 16)» อีกสามช่องจะเติมให้เอง
- ถ้าตัวเลขไม่ตรงกับฐาน (เช่น 2 ในฐานสอง) เครื่องมือจะแจ้งเตือน
- สำหรับข้อความ ให้พิมพ์ในช่อง «ข้อความ» แล้วดู «ฐานสอง (8 บิตต่ออักขระ)» และฐานสิบหกแบบไบต์ นอกจากนี้ยังวางบิตเป็นกลุ่มละ 8 เพื่อแปลงกลับเป็นข้อความได้
- สำหรับฐานแปลก ๆ ใช้ «เลขฐานใดก็ได้ (ฐาน 2 ถึง 36)»: เลือกฐานต้นทาง ฐานปลายทาง และตัวเลข
ข้อจำกัด: แปลงได้เฉพาะจำนวนเต็มที่ไม่ติดลบ (ไม่มีทศนิยมและเครื่องหมาย) และไม่เติมศูนย์ข้างหน้าให้ ดังนั้นถ้าต้องการ 8 บิตคงที่ ต้องเติมเอง (13 คือ 00001101) ไม่มีสิ่งที่พิมพ์ออกจากเบราว์เซอร์ของคุณ
ข้อผิดพลาดที่พบบ่อย
- อ่านเศษกลับด้าน: ในการหารต่อเนื่อง เศษแรกคือหลักขวาสุด ไม่ใช่หลักซ้ายสุด
- ลืมศูนย์ข้างหน้าเมื่อจำเป็น: 13 คือ 1101 แต่ถ้าเป็นไบต์คือ 00001101 สำคัญเมื่อความยาวเป็นส่วนของข้อมูล เช่น ในสีหรือซับเน็ตมาสก์
- สับสนตัวอักษร O กับเลขศูนย์ หรือ B ฐานสิบหก (11) กับ 8 ตอนคัดลอก ในฐานสิบหก ตัวอักษรพิมพ์ใหญ่และพิมพ์เล็กมีค่าเท่ากัน แต่ไม่เหมือนตัวเลข
- เหลือคำนำหน้า 0x หรือเครื่องหมาย # ตอนแปลง: สิ่งเหล่านี้เป็นแค่เครื่องหมายว่าเป็นเลขฐานสิบหก ต้องลบออกก่อนวาง
- คิดว่า 10 ในฐานสองคือสิบ: จริง ๆ คือสอง «10» เดียวกันมีค่า 2, 10 หรือ 16 ขึ้นอยู่กับฐาน
แบบฝึกหัดพร้อมเฉลยสำหรับฝึก
ลองทำแต่ละข้อก่อนดูคำตอบ แล้วตรวจสอบด้วยเครื่องมือ
- แปลง 10110110 เป็นฐานสิบและฐานสิบหก คำตอบ: 128 + 32 + 16 + 4 + 2 = 182; แบ่งเป็นกลุ่มละสี่ 1011 0110 = B6
- แปลง 200 เป็นฐานสองและฐานสิบหก คำตอบ: 11001000 และ C8 (12 × 16 + 8 = 200)
- แปลง 7F เป็นฐานสอง คำตอบ: 7 = 0111 และ F = 1111 ดังนั้น 01111111 ซึ่งในฐานสิบคือ 127
- เขียน «OK» เป็นฐานสอง คำตอบ: O คือ 79 และ K คือ 75 หรือ 01001111 01001011
คำถามที่พบบ่อย
แปลง 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 บิต