ระบบเลข: แบบฝึกหัดพร้อมเฉลยทีละขั้นตอน

แบบฝึกหัด ระบบเลข ฟรี พร้อมแผนภาพ คำใบ้ และเฉลยละเอียด ตัวเลขใหม่ทุกครั้ง สามระดับ: ฐานสองและฐานสิบหกเป็นฐานสิบ, two's complement, บิต ช่วงค่า และหน่วยความจำ

โจทย์ฝึกฟรีง่าย
คลิกบิตเพื่อตั้งค่า012806403201608040201

ตั้งบิตให้รีจิสเตอร์ 8 บิตเก็บ 0x99 ค่าของรูปแบบ N เป็นเท่าใดในเลขฐานสิบ

0x99

คลิกบิตเพื่อสลับระหว่าง 0 และ 1 กล่องแสดงรูปแบบของคุณเป็นจำนวนไม่มีเครื่องหมาย และคุณพิมพ์ได้เช่นกัน คำตอบที่แน่นอน: จำนวนเต็ม ไม่ต้องปัดเศษ

โจทย์ถัดไป →
ฝึก ระบบเลข ฟรีฝึก ระบบเลข เลยโจทย์ฟรีวันละ 5 ข้อ ไม่ต้องใช้บัตร

สิ่งที่คุณจะได้ฝึก

  1. ง่ายฐานสองและฐานสิบหกเป็นฐานสิบ
  2. ปานกลางtwo's complement
  3. ยากบิต ช่วงค่า และหน่วยความจำ

สูตรสำคัญ

ค่าประจำตำแหน่ง
ฐานสอง 2k, ฐานแปด 8k, ฐานสิบหก 16k
เป็นเลขฐานสิบ
Σ dk·bk
จากเลขฐานสิบ
หารด้วยฐาน อ่านเศษจากล่างขึ้นบน
ฐานสิบหก ↔ ฐานสอง
เลขฐานสิบหกหนึ่งหลัก = 4 บิต
two’s complement
กลับบิตแล้วบวก 1

เรียนรู้ ระบบเลข ตั้งแต่ต้น

1ระบบจำนวนคืออะไร

ในชีวิตประจำวันคุณนับเป็นฐานสิบ มีสิบหลัก คือ 0 ถึง 9 และทุกหลักมีค่าเป็นสิบเท่าของหลักทางขวา

ใน 352 เลข 3 มีค่า 300 เลข 5 มีค่า 50 และเลข 2 มีค่า 2 หลักมีค่า 1, 10, 100 จากทางขวา

352 = 3 · 100 + 5 · 10 + 2 · 1

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

เลขฐานสองหนึ่งหลักคือบิต กลุ่ม 8 บิตคือไบต์

กฎเหมือนกันในทุกฐาน: แต่ละหลักมีค่าเท่ากับค่าของมันคูณกำลังของฐาน

ตรวจสอบตนเอง ในเลขฐานสิบ 4721 เลข 7 มีค่าเท่าใด
  1. 7000
  2. 700
  3. 70
  4. 7

คำตอบ: 700. นับจากทางขวา หลักมีค่า 1, 10, 100 และ 1000 เลข 7 อยู่ในหลักที่สาม จึงมีค่า 7 · 100 = 700

2ฐานสองและฐานสิบหก

ในฐานสอง หลักมีค่า 1, 2, 4, 8, 16 และต่อไป จากทางขวา แต่ละหลักมีค่าเป็นสองเท่าของหลักทางขวา

สำหรับเลข 8 บิต หลักมีค่า 128, 64, 32, 16, 8, 4, 2 และ 1

012806413211608041201

เพื่ออ่านเลขฐานสอง ให้บวกค่าหลักของทุกบิตที่เป็น 1 สำหรับ 0011 0010 คือ 32 + 16 + 2 = 50

แถวบิตยาว ๆ อ่านยาก โปรแกรมเมอร์จึงมักเขียนเป็นเลขฐานสิบหก (hex) ฐาน 16 แทน

เลขฐานสิบหกต้องใช้ 16 หลัก ใช้ 0 ถึง 9 แล้วตามด้วยตัวอักษร A = 10, B = 11, C = 12, D = 13, E = 14 และ F = 15

หลักฐานสิบหกมีค่า 1, 16, 256 และ 4096 จากทางขวา เลขฐานสิบหกมักเขียนโดยมี 0x นำหน้า เช่น 0x2F

เลขฐานสิบหกหนึ่งหลักเท่ากับ 4 บิตพอดี ดังนั้น 0011 0010 คือ 0x32: 0011 คือ 3 และ 0010 คือ 2

ตรวจสอบตนเอง 0x1A เป็นเลขฐานสิบเท่าใด
  1. 110
  2. 11
  3. 161
  4. 26

คำตอบ: 26. A = 10 หลักคือ 16 และ 1 ดังนั้น 1 · 16 + 10 · 1 = 26 การเขียนเลขต่อกัน (110) หรือบวกกัน (11) ละเลยค่าหลัก 161 ใช้หลักผิดลำดับ

3จำนวนลบ: ทูส์คอมพลีเมนต์

ไบต์ที่ทุกหลักเป็นบวกเก็บได้ 0 ถึง 255 เรียกว่าไม่มีเครื่องหมาย

เพื่อเก็บจำนวนลบ คอมพิวเตอร์ใช้ทูส์คอมพลีเมนต์ สิ่งเดียวที่เปลี่ยนคือบิตซ้ายสุดมีค่า −128 แทน +128

1−12806403201608041211

ดังนั้น 1000 0011 คือ −128 + 2 + 1 = −125 บิตซ้ายสุดเรียกว่าบิตเครื่องหมาย: เมื่อเป็น 1 จำนวนนั้นเป็นลบ

ทูส์คอมพลีเมนต์ 8 บิตมีช่วงจาก −128 (1000 0000) ถึง +127 (0111 1111)

เพื่อเขียนจำนวนลบ −x ให้เริ่มจาก +x ในฐานสอง กลับทุกบิต (0 เป็น 1, 1 เป็น 0) และบวก 1

ตัวอย่างสำหรับ −5: 5 คือ 0000 0101 เมื่อกลับบิตเป็น 1111 1010 บวก 1 ได้ 1111 1011

รูปแบบเดียวกันเมื่ออ่านเป็นไม่มีเครื่องหมายมีค่า 256 − x สำหรับ −5 คือ 251 และ 1111 1011 คือ 128 + 64 + 32 + 16 + 8 + 2 + 1 = 251 จริง

ตรวจสอบตนเอง รูปแบบ 8 บิต 1111 1111 เก็บจำนวนทูส์คอมพลีเมนต์ ค่าของมันคือเท่าใด
  1. 255
  2. −127
  3. −128
  4. −1

คำตอบ: −1. −128 + 64 + 32 + 16 + 8 + 4 + 2 + 1 = −1 255 คือการอ่านแบบไม่มีเครื่องหมาย −127 มาจากการถือบิตแรกเป็นเครื่องหมายลบหน้า 111 1111

4วิธีทำทีละขั้น

ฐานสองหรือฐานสิบหกเป็นฐานสิบ:

  1. เขียนค่าหลักใต้ทุกหลัก: กำลังของ 2 สำหรับฐานสอง กำลังของ 16 สำหรับฐานสิบหก เริ่มด้วย 1 ทางขวา
  2. ในฐานสิบหก แทนแต่ละตัวอักษรด้วยค่าของมัน: A = 10 ถึง F = 15
  3. คูณแต่ละหลักด้วยค่าหลักของมันแล้วบวกทั้งหมด

ทูส์คอมพลีเมนต์:

  1. เพื่ออ่านรูปแบบ ให้บิตซ้ายสุดมีค่า −128 (ใน 8 บิต) และบวกค่าหลักของทุกบิต 1
  2. เพื่อเขียน −x ให้เขียน +x ใน 8 บิต กลับทุกบิต และบวก 1
  3. ค่าแบบไม่มีเครื่องหมายของรูปแบบนั้นคือ 256 − x ใช้ตรวจสอบบิตของคุณ

บิต ช่วง และหน่วยความจำ:

  1. n บิตให้ 2ⁿ รูปแบบที่ต่างกัน
  2. แบบไม่มีเครื่องหมายเก็บ 0 ถึง 2ⁿ − 1 ในทูส์คอมพลีเมนต์เก็บ −2ⁿ⁻¹ ถึง 2ⁿ⁻¹ − 1
  3. เพื่อให้ k รายการมีรหัสของตัวเอง ให้หา b ที่น้อยที่สุดที่ 2b ≥ k
  4. สำหรับหน่วยความจำ ให้คูณจำนวนรายการด้วยบิตต่อรายการ แล้วหารด้วย 8 เป็นไบต์ และหารด้วย 1024 เป็น KiB
M = ความกว้าง × ความสูง × บิตต่อพิกเซล / 8 / 1024 (KiB)

5ตัวอย่างที่แก้ให้ดู

ทำตามทุกขั้นตอน ลองทำนายขั้นถัดไปก่อนเปิดดู

ตัวอย่างที่แก้ให้ดู

รูปแบบ 8 บิต 1011 0110 เก็บจำนวนเต็มมีเครื่องหมายแบบทูส์คอมพลีเมนต์ ค่า N ของมันในฐานสิบคือเท่าใด

1

เขียนค่าหลัก

1−12806413211608141201

ในทูส์คอมพลีเมนต์ หลักซ้ายสุดมีค่า −128 หลักอื่นคือ 64, 32, 16, 8, 4, 2 และ 1

2

ดูบิตเครื่องหมาย

บิตซ้ายสุดเป็น 1 จำนวนนี้จึงเป็นลบ

3

บวกบิต 1

บิต 1 อยู่ในหลัก −128, 32, 16, 4 และ 2

N = −128 + 32 + 16 + 4 + 2 = −74
4

ตรวจสอบด้วยค่าแบบไม่มีเครื่องหมาย

อ่านเป็นแบบไม่มีเครื่องหมาย รูปแบบนี้คือ 128 + 32 + 16 + 4 + 2 = 182

สำหรับจำนวนลบ ค่าแบบไม่มีเครื่องหมายคือ 256 − x ดังนั้น x = 256 − 182 = 74 ซึ่งให้ N = −74 อีกครั้ง

5

ตรวจสอบโดยการกลับบิต

กลับ 1011 0110 ได้ 0100 1001 แล้วบวก 1 ได้ 0100 1010

0100 1010 คือ 64 + 8 + 2 = 74 ดังนั้นรูปแบบเดิมคือ −74

คำตอบ

N = −74

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

  • ลืมบวก 1 หลังกลับบิต คุณจะได้ค่าต่ำไปหนึ่ง
  • อ่านรูปแบบทูส์คอมพลีเมนต์เป็นแบบไม่มีเครื่องหมาย เช่น 1111 1111 เป็น 255 แทนที่จะเป็น −1
  • ถือบิตเครื่องหมายเป็นเครื่องหมายลบหน้าบิตอื่น ในทูส์คอมพลีเมนต์มันมีค่า −128
  • ใส่หลักผิดลำดับ หลักที่มีค่า 1 อยู่ทางขวาเสมอ
  • ใช้ A = 11 ในฐานสิบหก ตัวอักษรเริ่มที่ A = 10
  • ปนบิตกับไบต์ในโจทย์หน่วยความจำ ให้หารจำนวนบิตด้วย 8
ตรวจสอบตนเอง −5 เป็นรูปแบบทูส์คอมพลีเมนต์ 8 บิตคืออะไร
  1. 0000 0101
  2. 1000 0101
  3. 1111 1010
  4. 1111 1011

คำตอบ: 1111 1011. 5 คือ 0000 0101 เมื่อกลับบิตได้ 1111 1010 และบวก 1 ได้ 1111 1011 1111 1010 ลืมบวก 1 และ 1000 0101 ใส่เครื่องหมายลบหน้า 5

7ข้อสอบมีหน้าตาอย่างไร

  • ง่าย: ฐานสองและฐานสิบหกเป็นฐานสิบ แปลงเลขฐานสอง 8 บิตหรือเลขฐานสิบหก 3 หลักเป็นฐานสิบ
  • ปานกลาง: ส่วนประกอบสองของเลขฐานสอง (two’s complement) อ่านค่าของแบบรูปบิตแบบมีเครื่องหมาย 8 บิต หรือเขียนเลขลบเป็นแบบรูปบิตแล้วบอกค่าแบบไม่มีเครื่องหมาย
  • ยาก: บิต ช่วงค่า และหน่วยความจำ ค่ามากที่สุดหรือค่าลบมากที่สุดที่เก็บได้ใน n บิต จำนวนบิตที่ต้องใช้สำหรับ k รหัส หรือหน่วยความจำที่รูปภาพใช้

ตัวอย่างคำถามระดับยาก: รูปภาพขนาด 256 × 256 พิกเซล พิกเซลละ 24 บิต ใช้หน่วยความจำ 256 · 256 · 24 / 8 / 1024 = 192 KiB

ตรวจสอบตนเอง ต้องใช้อย่างน้อยกี่บิตจึงจะให้รายการ 375 รายการมีรหัสเป็นของตนเอง
  1. 188
  2. 512
  3. 8
  4. 9

คำตอบ: 9. 2⁸ = 256 รหัสน้อยเกินไป 2⁹ = 512 เพียงพอ จึงต้องใช้ 9 บิต ส่วน 512 คือจำนวนรหัส ไม่ใช่จำนวนบิต

เรียนรู้ทีละขั้นในแอปเรียนรู้ทีละขั้นในแอป

ตัวอย่างวิธีทำ

ตัวอย่างที่ 1ง่าย
ค่าประจำตำแหน่ง2256B16E1

แปลงเลขฐานสิบหก 0x2BE เป็นเลขฐานสิบ หา N

0x2BEA = 10 … F = 15

จงหา N

แสดงคำใบ้
  1. ตำแหน่งในเลขฐานสิบหกมีค่า 1, 16, 256, 4096 จากขวา
  2. แทนตัวอักษรด้วยค่าของมัน (A = 10 … F = 15) คูณด้วยค่าประจำตำแหน่งแล้วบวกกัน
  3. 2 = 2, B = 11, E = 14.
แสดงคำตอบและเฉลยทีละขั้นตอน

ระบบเลขตามตำแหน่ง: แต่ละหลักมีค่าเท่ากับค่าของหลักนั้นคูณกำลังของฐาน ในเลขฐานสองแต่ละตำแหน่งมีค่า 1, 2, 4, 8, 16, …; ในเลขฐานสิบหก 1, 16, 256, … โดย A–F แทน 10–15 ในระบบ two's complement 8 บิต บิตซ้ายสุดมีค่า −128 แทนที่จะเป็น +128 ซึ่งเป็นวิธีเก็บจำนวนลบ

คูณแต่ละหลักด้วยค่าประจำตำแหน่ง

2·256 + 11·16 + 14·1 = 702

คำตอบ

0x2BE = 702
ตัวอย่างที่ 2ปานกลาง
two's complement 8 บิต0−12806403201608040201

ตั้งบิตให้เก็บ −45 ใน two's complement 8 บิต อ่านเป็นจำนวนไม่มีเครื่องหมาย ค่าของรูปแบบ U เป็นเท่าใด

N = −458 bit

จงหา U

แสดงคำใบ้
  1. เขียน 45 เป็นเลขฐานสอง กลับทุกบิต แล้วบวก 1
  2. 45 = 0010 1101₂.
  3. ในรูปจำนวนไม่มีเครื่องหมาย รูปแบบเท่ากับ 256 + N
แสดงคำตอบและเฉลยทีละขั้นตอน

การตั้งค่าบิต: แต่ละบิตมีค่าเป็นกำลังของสอง (128, 64, …, 1) เลขฐานสิบหกหนึ่งหลักคือสี่บิตพอดี และใน two's complement 8 บิต บิตซ้ายสุดมีค่า −128 การดำเนินการระดับบิตทำงานกับแต่ละตำแหน่งบิตแยกกัน

กลับบิตแล้วบวกหนึ่ง

45 = 0010 1101
ที่กลับบิตแล้ว: 1101 0010
+1 → 1101 0011

อ่านเป็นแบบไม่มีเครื่องหมาย

1101 0011₂ = 256 − 45 = 211

คำตอบ

U = 211
ตัวอย่างที่ 3ยาก
คลิกบิตเพื่อตั้งค่า012806403201608040201

ตั้งบิตให้เป็นผลลัพธ์ 8 บิตของ 0111 0001 >> 3 ค่าของผลลัพธ์ R เป็นเท่าใดในเลขฐานสิบ

0111 0001>> 3

จงหา R

แสดงคำใบ้
  1. การเลื่อนขวา 3 ตำแหน่งย้ายทุกบิตไปทางขวา 3 ตำแหน่ง บิตที่หลุดออกปลายขวาหายไปและศูนย์เข้ามาทางซ้าย
  2. ทำทีละตำแหน่งบิต จากซ้ายไปขวา
  3. สี่บิตแรกของผลลัพธ์คือ 0000
แสดงคำตอบและเฉลยทีละขั้นตอน

การตั้งค่าบิต: แต่ละบิตมีค่าเป็นกำลังของสอง (128, 64, …, 1) เลขฐานสิบหกหนึ่งหลักคือสี่บิตพอดี และใน two's complement 8 บิต บิตซ้ายสุดมีค่า −128 การดำเนินการระดับบิตทำงานกับแต่ละตำแหน่งบิตแยกกัน

ทีละบิต

การเลื่อนขวา 3 ตำแหน่งย้ายทุกบิตไปทางขวา 3 ตำแหน่ง บิตที่หลุดออกปลายขวาหายไปและศูนย์เข้ามาทางซ้าย

0111 0001 >> 3
= 0000 1110

ค่าของผลลัพธ์

0000 1110₂ = 14

คำตอบ

R = 14

คำถามและคำตอบ

ระบบเลข คืออะไร

ในชีวิตประจำวันคุณนับเป็นฐานสิบ มีสิบหลัก คือ 0 ถึง 9 และทุกหลักมีค่าเป็นสิบเท่าของหลักทางขวา

ใน 352 เลข 3 มีค่า 300 เลข 5 มีค่า 50 และเลข 2 มีค่า 2 หลักมีค่า 1, 10, 100 จากทางขวา

จะแก้โจทย์ ระบบเลข ทีละขั้นได้อย่างไร

ระบบเลขตามตำแหน่ง: แต่ละหลักมีค่าเท่ากับค่าของหลักนั้นคูณกำลังของฐาน ในเลขฐานสองแต่ละตำแหน่งมีค่า 1, 2, 4, 8, 16, …; ในเลขฐานสิบหก 1, 16, 256, … โดย A–F แทน 10–15 ในระบบ two's complement 8 บิต บิตซ้ายสุดมีค่า −128 แทนที่จะเป็น +128 ซึ่งเป็นวิธีเก็บจำนวนลบ

แบบฝึกหัด ระบบเลข ครอบคลุมเรื่องอะไรบ้าง
  • ง่าย: ฐานสองและฐานสิบหกเป็นฐานสิบ
  • ปานกลาง: two's complement
  • ยาก: บิต ช่วงค่า และหน่วยความจำ

โจทย์ทุกข้อใช้ค่าใหม่ คุณจึงเรียนรู้วิธีทำ ไม่ใช่จำคำตอบ ติดขัดใช่ไหม เปิดคำใบ้เล็ก ๆ ก่อน และเปิดคำอธิบายฉบับเต็มเมื่อจำเป็นเท่านั้น

การฝึกทำงานอย่างไร

  • โจทย์ทุกข้อใช้ค่าใหม่ คุณจึงเรียนรู้วิธีทำ ไม่ใช่จำคำตอบ
  • ติดขัดใช่ไหม เปิดคำใบ้เล็ก ๆ ก่อน และเปิดคำอธิบายฉบับเต็มเมื่อจำเป็นเท่านั้น
  • ความก้าวหน้า ข้อที่ผิด และโจทย์ที่บันทึกไว้จะถูกเก็บไว้ เพื่อให้คุณทบทวนก่อนสอบได้

หัวข้อก่อนและหลังหัวข้อนี้

เรียนต่อด้วย

เครื่องคำนวณ

รายวิชาที่มีหัวข้อนี้

หัวข้ออื่นในวิทยาการคอมพิวเตอร์

ใบงานสำหรับพิมพ์

ฝึก ระบบเลข ฟรีฝึก ระบบเลข เลยโจทย์ฟรีวันละ 5 ข้อ ไม่ต้องใช้บัตร