วิชาคอมพิวเตอร์ของนายสิบตำรวจเน้นความรู้พื้นฐาน และหัวข้อที่ออกแทบทุกปีคือหน่วยข้อมูลกับการแปลงเลขฐาน ข่าวดีคือสองเรื่องนี้เป็นข้อคิดเลข มีคำตอบเดียวแน่นอน ถ้าจำกฎไม่กี่ข้อได้ ก็เก็บคะแนนได้ครบโดยไม่ต้องเดา
บิตกับไบต์: จุดเริ่มต้นของทุกข้อ
- บิต (bit) คือหน่วยข้อมูลที่เล็กที่สุด มีค่าได้แค่ 0 หรือ 1
- 1 ไบต์ = 8 บิต ใช้แทนตัวอักษร 1 ตัว (ในรหัส ASCII)
- n บิตแทนค่าได้ 2ⁿ แบบ เช่น 8 บิต = 2⁸ = 256 แบบ (0 ถึง 255)
ลำดับชั้นของข้อมูล จากเล็กไปใหญ่: บิต → ไบต์ (อักขระ) → เขตข้อมูล (Field) → ระเบียน (Record) → แฟ้มข้อมูล (File) → ฐานข้อมูล (Database)
จำว่า บิต–ไบต์–ฟิลด์–เรคคอร์ด–ไฟล์–ดาต้าเบส เล็กไปใหญ่เหมือนขั้นบันได
หน่วยความจุ: ทุกขั้นคูณ 1,024
| หน่วย | ย่อ | เท่ากับ |
|---|---|---|
| ไบต์ | B | 8 บิต |
| กิโลไบต์ | KB | 1,024 ไบต์ |
| เมกะไบต์ | MB | 1,024 KB |
| กิกะไบต์ | GB | 1,024 MB |
| เทระไบต์ | TB | 1,024 GB |
| เพตะไบต์ | PB | 1,024 TB |
จำว่า B–K–M–G–T–P ขยับหนึ่งขั้น คูณ 1,024
1,000 หรือ 1,024? ตามมาตรฐานสากล "กิโล" แปลว่า 1,000 และหน่วยที่เท่ากับ 1,024 จะเขียนว่า KiB ผู้ผลิตฮาร์ดดิสก์ก็นับแบบ 1,000 แต่ตำราไทยและข้อสอบราชการใช้ 1 KB = 1,024 ไบต์ ตอนสอบให้ใช้ 1,024 เสมอ
ตัวอย่างคิดเร็ว
- 3 KB = 3 × 1,024 = 3,072 ไบต์
- 2 MB = 2 × 1,024 × 1,024 = 2,097,152 ไบต์
- 4 GB = 4 × 1,024 = 4,096 MB
ความเร็วเน็ตใช้ "บิต" ไม่ใช่ "ไบต์"
ความเร็วในการส่งข้อมูลใช้หน่วย บิตต่อวินาที (bps) เช่น อินเทอร์เน็ต 100 Mbps คือ 100 ล้านบิตต่อวินาที ถ้าโจทย์ถามเป็นเมกะไบต์ต่อวินาที ให้หารด้วย 8 ได้ประมาณ 12.5 เมกะไบต์ต่อวินาที
จำว่า b เล็ก = บิต · B ใหญ่ = ไบต์ · เน็ตหาร 8
รู้จักเลขฐาน 4 แบบ
| ฐาน | ชื่อ | ตัวเลขที่ใช้ | ใช้ที่ไหน |
|---|---|---|---|
| 2 | Binary | 0, 1 | ภาษาที่คอมพิวเตอร์ใช้จริง |
| 8 | Octal | 0–7 | ย่อเลขฐาน 2 กลุ่มละ 3 บิต |
| 10 | Decimal | 0–9 | เลขที่คนใช้ทั่วไป |
| 16 | Hexadecimal | 0–9 และ A–F | ย่อเลขฐาน 2 กลุ่มละ 4 บิต เช่น รหัสสีเว็บ #FF0000, MAC address |
ฐาน 16 ต้องจำค่าตัวอักษร: A=10, B=11, C=12, D=13, E=14, F=15
ค่าประจำหลักของฐาน 2 ที่ควรท่อง: 1, 2, 4, 8, 16, 32, 64, 128, 256 (และ 2¹⁰ = 1,024)
จำว่า ฐาน 8 จับ 3 · ฐาน 16 จับ 4 (จำนวนบิตต่อกลุ่ม)
3 วิธีแปลงเลขฐานที่ต้องคล่อง
วิธีที่ 1 ฐานอื่น → ฐาน 10: คูณแต่ละหลักด้วยค่าประจำหลัก (นับหลักขวาสุดเป็นตำแหน่ง 0) แล้วบวกกัน
วิธีที่ 2 ฐาน 10 → ฐานอื่น: หารด้วยฐานไปเรื่อย ๆ จนผลหารเป็น 0 แล้วอ่านเศษจากล่างขึ้นบน
วิธีที่ 3 ฐาน 2 → ฐาน 8 หรือ 16 (ทางลัด): แบ่งกลุ่มจากขวา กลุ่มละ 3 บิต (ฐาน 8) หรือ 4 บิต (ฐาน 16) ถ้าหลักไม่ครบให้เติม 0 ข้างหน้า
ตัวอย่างคิดให้ดูทีละขั้น
ตัวอย่าง 1: 11001₂ เป็นฐาน 10 เท่าไร
เขียนค่าประจำหลักใต้แต่ละหลัก: 16, 8, 4, 2, 1 แล้วเลือกเฉพาะหลักที่เป็น 1 16 + 8 + 0 + 0 + 1 = 25₁₀
ตัวอย่าง 2: 45₁₀ เป็นฐาน 2 เท่าไร
| หาร | ผลหาร | เศษ |
|---|---|---|
| 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 ถูกต้อง)
ตัวอย่าง 3: 3A₁₆ เป็นฐาน 10 เท่าไร
A = 10 ดังนั้น (3 × 16) + (10 × 1) = 48 + 10 = 58₁₀
ตัวอย่าง 4: 11010110₂ เป็นฐาน 8 และฐาน 16
- ฐาน 8 (กลุ่มละ 3 จากขวา): 011 | 010 | 110 → 3 | 2 | 6 → 326₈
- ฐาน 16 (กลุ่มละ 4 จากขวา): 1101 | 0110 → 13 | 6 → D6₁₆
ทั้งสองคำตอบมีค่าเท่ากับ 214₁₀
คำหลอกที่ต้องระวัง
- อ่านเศษผิดทิศ การหารเอาเศษต้องอ่านจากล่างขึ้นบน ตัวเลือกหลอกมักเป็นเลขที่อ่านกลับด้าน เช่น 13₁₀ คำตอบที่ถูกคือ 1101₂ แต่ถ้าอ่านบนลงล่างจะได้ 1011₂ ซึ่งเท่ากับ 11 ผิดทันที
- แบ่งกลุ่มจากซ้าย ทางลัดฐาน 8 และ 16 ต้องแบ่งจากขวา และเติม 0 ข้างหน้า ไม่ใช่ข้างหลัง
- ลืมว่า A–F คือ 10–15 ใน 3A₁₆ ถ้าคิด A เป็น 1 จะได้คำตอบผิด
- ใช้ 1,000 แทน 1,024 ข้อสอบราชการใช้ 1 KB = 1,024 ไบต์
- สับสนบิตกับไบต์ ความเร็วเน็ตเป็นบิตต่อวินาที (bps) ต้องหาร 8 ก่อนเทียบกับขนาดไฟล์เป็นไบต์
- หน่วยเล็กที่สุดคือบิต ไม่ใช่ไบต์ ข้อนี้ถูกถามบ่อยและพลาดบ่อย
ฝึกให้คล่อง
ข้อเลขฐานส่วนใหญ่ไม่เกิน 8 บิต ถ้าท่องค่าประจำหลัก 1 ถึง 128 ได้คล่อง จะคิดแต่ละข้อได้ในไม่กี่วินาที ลองทำข้อสอบแล้วตรวจกลับทุกข้อด้วยการแปลงย้อน
ลองทำ
ข้อ 1 ไฟล์ขนาด 5 KB มีขนาดกี่ไบต์
ข้อ 2 37₁₀ เขียนเป็นเลขฐาน 2 ได้ตรงกับข้อใด
ข้อ 3 2F₁₆ มีค่าเท่ากับเลขฐาน 10 เท่าไร
ข้อ 4 101101011₂ เขียนเป็นเลขฐาน 16 ได้ตรงกับข้อใด
ดูเฉลย
- ก ข้อสอบราชการใช้ 1 KB = 1,024 ไบต์ ได้ 5 × 1,024 = 5,120 ไบต์ ข้อ ข ใช้ 1,000 ข้อ ค คือจำนวนบิต (คูณ 8) ข้อ ง หาร 8 ผิดทาง
- ค หาร 2 ได้เศษ 1, 0, 1, 0, 0, 1 อ่านจากล่างขึ้นบน = 100101₂ (ตรวจกลับ: 32 + 4 + 1 = 37) ข้อ ก คืออ่านบนลงล่าง ได้ 41
- ง F = 15 ดังนั้น (2 × 16) + 15 = 47 ข้อ ก คิด F เป็น 1 ข้อ ข ใช้ค่าประจำหลัก 10 แทน 16
- ค แบ่งกลุ่มละ 4 จากขวาและเติม 0 ข้างหน้า: 0001 | 0110 | 1011 → 1 | 6 | B ข้อ ก แบ่งจากซ้าย ข้อ ข แบ่งกลุ่มละ 3 (นั่นคือฐาน 8) ข้อ ง ลืมเขียน 11 เป็น B
ฝึกเลย: ข้อสอบหน่วยข้อมูลและเลขฐาน · ความรู้พื้นฐานคอมพิวเตอร์