ข้ามไปที่เนื้อหา
บทที่ 1อ่านประมาณ 10 นาที

ระบบเลขฐานและการคำนวณเลขฐานสอง

เรียนจบบทนี้แล้วจะ

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

ระบบเลขฐานสิบและค่าประจำหลัก

ตัวเลขที่เราใช้ทุกวันเป็นระบบเลขฐานสิบ (Base 10) มีเลขโดด 10 ตัวคือ 0 ถึง 9 และแต่ละหลักมี ไม่เท่ากัน หลักหน่วยมีค่า 1 หลักสิบมีค่า 10 หลักร้อยมีค่า 100 ทุกครั้งที่ขยับไปทางซ้ายหนึ่งหลัก ค่าประจำหลักจะคูณ 10

345 = 3 × 102 + 4 × 101 + 5 × 100

กดปุ่มด้านล่างเพื่อดูการแยกเลข 345 ทีละขั้น (ใช้ปุ่มลูกศรบนคีย์บอร์ดก็ได้)

1/4ตัวเลข 345

ขั้นที่ 1 จาก 4: ตัวเลข 345

3

4

5

เลข 345 ที่เราเขียนกันทุกวัน แต่ละหลักมีความหมายไม่เท่ากัน

ขั้นที่ 1/4

เลขฐานสองใช้แค่ 0 กับ 1

คอมพิวเตอร์เก็บข้อมูลด้วยวงจรที่มีแค่ 2 สถานะ (มีไฟ / ไม่มีไฟ) จึงใช้ระบบเลขฐานสอง (Base 2) ซึ่งมีเลขโดดแค่ 0 และ 1 หลักแต่ละหลักของเลขฐานสองเรียกว่า

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

น้ำหนักของแต่ละบิต

ค่าประจำหลักของบิตเรียกว่า นับตำแหน่งจากขวาสุดเป็นตำแหน่งที่ 0 บิตตำแหน่งที่ k มีน้ำหนัก 2k

ตำแหน่ง76543210
น้ำหนัก2726252423222120
ค่า1286432168421

ค่าฐานสิบของเลขฐานสองจึงเท่ากับผลรวมของน้ำหนักทุกบิตที่เป็น 1 (บิตที่เป็น 0 ไม่เพิ่มอะไร)

ตัวอย่าง: แปลง 1011₂ เป็นฐานสิบ

ไล่ทีละบิตที่เป็น 1 แล้วบวกน้ำหนักเข้าไปทีละตัว:

1/5เขียนน้ำหนักใต้แต่ละบิต

ขั้นที่ 1 จาก 5: เขียนน้ำหนักใต้แต่ละบิต

23 = 81+8
22 = 400
21 = 21+2
20 = 11+1

0 = 0

ใต้แต่ละบิตเขียนน้ำหนัก (2 ยกกำลังตำแหน่ง นับจากขวาสุดเป็นตำแหน่งที่ 0)

ขั้นที่ 1/5
10112 = 1×8 + 0×4 + 1×2 + 1×1 = 11

ช่วงค่าของจำนวนเต็ม 8 บิตแบบไม่มีเครื่องหมาย

ถ้าใช้ทั้ง 8 บิตเก็บขนาดของค่า (ไม่มีบิตเครื่องหมาย เรียกว่า ) จะได้ทั้งหมด 28 = 256 แบบ

  • ค่าน้อยที่สุด: 00000000 = 0
  • ค่ามากที่สุด: 11111111 = 128 + 64 + 32 + 16 + 8 + 4 + 2 + 1 = 255 = 28 − 1

n บิตเก็บจำนวนเต็มไม่มีเครื่องหมายได้ตั้งแต่ 0 ถึง 2n − 1 · เลขที่ใหญ่กว่านี้ต้องใช้บิตมากขึ้น

Integer Explorer: ลองกดบิตเอง

กดที่บิตเพื่อสลับ 0/1 แล้วดูว่าแต่ละบิตเพิ่มค่าเท่าไร ค่าฐานสิบเปลี่ยนทันที (บนคีย์บอร์ดใช้ Tab เข้ามาแล้วกดลูกศรซ้าย/ขวาย้ายบิต Space หรือ Enter เพื่อสลับ)

27128+0
2664+0
2532+0
2416+0
238+8
224+0
212+2
201+1
000010112= 1110

8 + 2 + 1 = 11

ค่าตั้งต้น

8 บิตมีได้ 28 = 256 แบบ ค่าน้อยสุด 0 (ทุกบิตเป็น 0) ค่ามากสุด 255 (ทุกบิตเป็น 1)

สรุปท้ายบท

  • ระบบเลขแบบค่าประจำหลัก: ค่าของตัวเลข = ผลรวมของ (เลขในหลัก × ค่าประจำหลัก)
  • ฐานสิบมีเลขโดด 0–9 ค่าประจำหลักเป็น 10k · ฐานสองมีแค่ 0 กับ 1 ค่าประจำหลักเป็น 2k
  • หลักหนึ่งหลักของฐานสองเรียกว่าบิต น้ำหนักของบิตตำแหน่ง 0–7 คือ 1, 2, 4, 8, 16, 32, 64, 128
  • ค่าฐานสิบของเลขฐานสอง = ผลรวมน้ำหนักของบิตที่เป็น 1 เช่น 1011₂ = 8 + 2 + 1 = 11
  • จำนวนเต็ม 8 บิตแบบไม่มีเครื่องหมายมีค่า 0 ถึง 255