Blockdit Logo
Blockdit Logo (Mobile)
สำรวจ
ลงทุน
คำถาม
เข้าสู่ระบบ
มีบัญชีอยู่แล้ว?
เข้าสู่ระบบ
หรือ
ลงทะเบียน
Python for beginners
•
ติดตาม
2 ก.ค. 2020 เวลา 11:00 • วิทยาศาสตร์ & เทคโนโลยี
ต่อจากครั้งที่แล้วที่ได้เกริ่นนำไปเกี่ยวกับเลขฐานสิบและเลขฐานสอง วันนี้เราจะมาศึกษาเพิ่มเติมกันในหัวข้อ “การแปลงเลขฐาน ระหว่างเลขฐานสิบและเลขฐานสอง”
ข้อชี้แจง: เครื่องหมาย v หมายถึงการห้อยนะครับ ไม่ใช่ or แต่อย่างใด
การแปลงเลขฐาน 10 เป็นเลขฐาน 2
เราจะยกตัวอย่างให้เห็นภาพละกันครับ เพราะถ้าอธิบายจะยิ่งงง 555 ยกตัวอย่างเช่น
1. จงแปลงเลข 3 ให้เป็นเลขฐานสอง
ก่อนอื่นเราต้องทราบก่อนว่า 3=2+1=2**1+2**0 (ทำให้เป็นผลบวกของเลข 2 ยกกำลังต่าง ๆ เรียงจากเลขยกกำลังมาก ไปเลขยกกำลังน้อย) จากนั้นเอาเลขชี้กำลังมาดูว่าจากเลขชี้กำลังมากไปน้อยมีหรือไม่มีเลขอะไรบ้าง ซึ่งในที่นี้มีเลขชี้กำลังเรียงกันคือ 1 และ 0 ซึ่งมีทั้ง 1 และ 0 (การมีจะได้ค่าเป็น 1 ไม่มีให้ค่าเป็น 0 แล้วให้นำค่ามาต่อกัน) ในที่นี้จะได้ว่า 3=11v2 (ห้อยเลข 2 หมายถึงเลขฐานสอง แต่เลขฐาน 10 จะห้อยเลข 10 หรือไม่ก็ได้)
2. จงแปลงเลข 7 ให้เป็นเลขฐานสอง
เราจะได้ว่า 7=4+2+1=2**2+2**1+2**0 เรียงเลขชี้กำลังจะได้ 2, 1 และ 0 ซึ่งมีทั้งหมด ดังนั้น 7=111v2
3. จงแปลงเลข 103 ให้เป็นเลขฐานสอง
เนื่องจากเราจะทำให้ 103 เป็นผลรวมของ 2 ยกกำลังอะไรสักอย่างครับ เราจึงได้ว่า 103=2**6+2**5+2**2+2**1+2**0 ครับ แล้วจากข้างต้นเราเจอเพียงแค่กำลัง 6, 5, 2, 1, 0 ครับจึงบอกว่าพวกนี้มี แต่กำลังที่เหลือไม่มีครับ(ที่เหลือคือกำลัง 4,3) ดังนั้นจึงได้ลำดับมี ไม่มีคือ มี มี ไม่ ไม่ มี มี มี ดังนั้น 103=1100111v2
4. จงแปลงเลข 2,051 ให้เป็นเลขฐานสอง
เราจะได้ว่า 2,051=2,048+2+1=2**11+2**1+2**0 ดังนั้น 2,051=100000000011v2
การแปลงเลขฐาน 2 เป็นเลขฐาน 10
การแปลงนี้จะง่ายกว่าด้านบน และคิดย้อนกลับ เดี๋ยวยกตัวอย่างให้ดูเช่นกันนะครับ
1. จงแปลงเลข 110v2 ให้เป็นเลขฐานสิบ
ให้เราดูว่ามีเลขฐานสองตอนนี้มีกี่หลัก (ตอนนี้มีสามหลัก) เราจะได้ว่าเลขชี้กำลังเรียงจากมากไปน้อยที่มีสามตัวก็คือ 2, 1 และ 0 ซึ่งหากดูที่เลขฐานสองจะได้ว่า มี, มี และ ไม่มี ตามลำกับ ดังนั้น 110v2=2**2+2**1=4+2=6 (ตัวที่ไม่มีไม่ต้องนำมายกกำลัง)
2. จงแปลงเลข 10110v2 ให้เป็นเลขฐานสิบ
ได้ว่าเลขชี้กำลังเรียงจากมากไปน้อยคือ 4, 3, 2, 1 และ 0 และได้ว่า มี, ไม่มี, มี, มี และ ไม่มี ตามลำดับ ดังนั้น 10110v2=2**4+2**2+2**1=16+4+2=22
3. จงแปลงเลข 1111111v2 ให้เป็นเลขฐานสิบ
ใช้หลักการเดียวกับข้อก่อนหน้า จะได้ว่า 1111111v2=2**6+2**5+2**4+2**3+2**2+2**1+2**0=64+32+16+8+4+2+1=127
4. จงแปลงเลข 10110110110111v2 ให้เป็นเลขฐานสิบ
จะได้ว่า 10110110110111v2=2**13+2**11+2**10+2**8+2**7+2**5+2**4+2**2+2**1+2**0=11,703
คำถามประจำบท
1. จงแปลงเลขฐานสิบต่อไปนี้ให้เป็นเลขฐานสอง
a) 13
b) 54
c) 64
d) 23367
2. จงแปลงเลขต่อไปนี้ให้เป็นเลขฐานสิบ
a) 1101v2
b) 110110111v2
c) 1011000100v2
d) 11111111111111111011v2
ถ้าใครมีคำถามหรือข้อเสนอแนะ comment มาได้นะครับ ยินดีรับฟังทุกความคิดเห็นเลย
เรื่องอื่นเพิ่มเติม:
https://www.blockdit.com/articles/5eedede2db20a50cafa7a2b3
Created by MickeyMouse
บันทึก
2
20
2
20
โฆษณา
ดาวน์โหลดแอปพลิเคชัน
© 2024 Blockdit
เกี่ยวกับ
ช่วยเหลือ
คำถามที่พบบ่อย
นโยบายการโฆษณาและบูสต์โพสต์
นโยบายความเป็นส่วนตัว
แนวทางการใช้แบรนด์ Blockdit
Blockdit เพื่อธุรกิจ
ไทย