เครื่องแปลงเลขฐานสิบ ↔ เลขฐานสอง
ป้อนตัวเลขฐานสิบเพื่อแปลงเป็นเลขฐานสอง หรือตัวเลขฐานสองเพื่อแปลงเป็นเลขฐานสิบ ผลลัพธ์จะปรากฏในช่องอื่น
เลขฐานสองเป็นระบบตัวเลขฐานสอง หมายความว่าใช้เพียงสองหลัก: 0 และ 1 แต่ละตำแหน่งในตัวเลขฐานสองแทนกำลังของ 2 เริ่มจาก 2^0 (ซึ่งเท่ากับ 1) ที่ด้านขวาสุด
ตัวอย่างเช่น ตัวเลขฐานสอง 1101 คำนวณได้ดังนี้:
1 × 2^3 + 1 × 2^2 + 0 × 2^1 + 1 × 2^0 = 8 + 4 + 0 + 1 = 13 (ในฐานสิบ)
วิธีใช้ เครื่องแปลงเลขฐานสิบ ↔ เลขฐานสอง
- 1
ป้อนตัวเลข
พิมพ์เลขฐานสิบลงในช่อง "ค่าฐานสิบ" หรือเลขฐานสองลงในช่อง "ค่าฐานสอง"
- 2
ดูการแปลง
ผลลัพธ์ที่ตรงกันจะปรากฏในอีกช่องทันทีขณะที่คุณพิมพ์ โดยไม่ต้องกดปุ่มใด ๆ
- 3
ตรวจดูขั้นตอน
ดูส่วน "ขั้นตอนการแปลง" เพื่อทำตามกระบวนการหารด้วย 2 ที่ให้ผลลัพธ์เป็นเลขฐานสอง
- 4
คัดลอกผลลัพธ์
ใช้ "คัดลอกฐานสิบ" หรือ "คัดลอกฐานสอง" เพื่อนำค่าไปใช้ หรือ Swap เพื่อสลับทิศทางการแปลง
การแปลงเลขฐานสิบเป็นเลขฐานสอง
จากฐาน 10 สู่ฐาน 2
เลขฐานสิบคือระบบตัวเลขฐาน 10 ที่สร้างขึ้นจากสิบหลัก คือ 0 ถึง 9 ที่ผู้คนใช้กันทุกวัน ส่วนเลขฐานสองคือระบบฐาน 2 ที่สร้างขึ้นจากเพียงสองหลัก คือ 0 และ 1 ที่คอมพิวเตอร์ใช้ภายในเพราะวงจรของมันมีสถานะเสถียรสองสถานะ การแปลงเลขฐานสิบเป็นเลขฐานสองคือการแสดงปริมาณเดียวกันในรูปแบบที่เครื่องจัดเก็บ ค่าไม่เปลี่ยน เปลี่ยนเพียงการเขียนเท่านั้น เลขฐานสิบ 13 และเลขฐานสอง 1101 คือจำนวนเดียวกัน
มีวิธีที่เชื่อถือได้สองวิธีในการทำการแปลงด้วยมือ คือ การหารด้วยสองซ้ำ ๆ ซึ่งสร้างหลักของเลขฐานสองจากล่างขึ้นบน และการลบกำลังของสอง ซึ่งสร้างมันจากบนลงล่าง ทั้งสองวิธีให้คำตอบเดียวกัน เครื่องมือนี้แสดงวิธีการหารทีละขั้นตอน เพื่อให้คุณติดตามได้เป๊ะ ๆ ว่าผลลัพธ์ถูกสร้างขึ้นอย่างไร แทนที่จะเห็นเพียงสตริงของบิตสุดท้าย
วิธีการหารซ้ำ
วิธีการหารได้ผลเพราะการหารด้วยสองแต่ละครั้งจะลอกหลักเลขฐานสองออกมาหนึ่งหลัก คุณหารตัวเลขด้วยสอง จดเศษไว้ (ซึ่งเป็น 0 หรือ 1 เสมอ) แล้วหารผลหารด้วยสองและบันทึกเศษของมัน และคุณก็ทำต่อไปจนกระทั่งผลหารถึงศูนย์ เศษเหล่านั้นคือหลักของเลขฐานสอง แต่มันออกมาแบบหลักที่มีนัยสำคัญน้อยที่สุดก่อน ขั้นตอนสุดท้ายจึงคือการอ่านมันกลับด้าน จากเศษตัวสุดท้ายย้อนกลับไปยังตัวแรก
ตรรกะนี้เป็นภาพสะท้อนของค่าประจำหลัก การหารด้วยสองเป็นการถามว่ามีเลขสองกี่จำนวนที่ลงตัวในตัวเลขนั้น และเศษบอกคุณว่าบิตหลักหนึ่งถูกตั้งหรือไม่ การหารครั้งถัดไปเลื่อนทุกอย่างลงหนึ่งหลักฐานสองและถามเกี่ยวกับบิตหลักสอง และต่อไปเรื่อย ๆ เพราะแต่ละขั้นตอนสร้างได้พอดีหนึ่งบิต ตัวเลขหนึ่งจึงต้องการจำนวนการหารเท่ากับจำนวนหลักฐานสองที่มันมี
ตัวอย่างใช้งานจริง: 13 เป็นเลขฐานสอง
แปลงเลขฐานสิบ 13 ด้วยการหารซ้ำ หาร 13 ด้วย 2 จะได้ผลหาร 6 เหลือเศษ 1 หาร 6 ด้วย 2 จะได้ 3 เศษ 0 หาร 3 ด้วย 2 จะได้ 1 เศษ 1 หาร 1 ด้วย 2 จะได้ 0 เศษ 1 ตอนนี้ผลหารเป็นศูนย์แล้ว คุณจึงหยุด
รวบรวมเศษตามลำดับที่ถูกสร้างขึ้น คือ 1, 0, 1, 1 แล้วกลับด้านมันเพื่ออ่านโดยให้หลักที่มีนัยสำคัญที่สุดมาก่อน จะได้ 1101 ดังนั้นเลขฐานสิบ 13 จึงเป็นเลขฐานสอง 1101 คุณยืนยันได้ด้วยค่าประจำหลัก 1101 คือ 8 + 4 + 0 + 1 ซึ่งรวมกันกลับมาเป็น 13 พอดี แผง "ขั้นตอนการแปลง" ในเครื่องมือนี้จะวางการหารแต่ละครั้งเหล่านี้ให้คุณ
วิธีการกำลังของสอง
แนวทางที่สองสร้างคำตอบจากบนลงล่างโดยใช้ค่าประจำหลัก เขียนรายการกำลังของสองที่ไม่เกินตัวเลขของคุณ คือ 1, 2, 4, 8, 16, 32, 64, 128 และต่อไปเรื่อย ๆ แล้วหาตัวที่ใหญ่ที่สุดที่ลงตัว ลบมันออก และทำซ้ำกับเศษ กำลังแต่ละตัวที่คุณใช้จะวาง 1 ลงในหลักนั้น และกำลังแต่ละตัวที่คุณข้ามจะวาง 0
สำหรับ 13 กำลังของสองที่ใหญ่ที่สุดที่ลงตัวคือ 8 เหลือ 5 กำลังที่ใหญ่ที่สุดที่ลงตัวใน 5 คือ 4 เหลือ 1 เลขสี่หารมันต่อไม่ได้ เลขสองก็ใหญ่เกินไป และ 1 ลงตัวพอดี เหลือ 0 ดังนั้นคุณใช้หลัก 8, 4 และ 1 และข้ามหลัก 2 ซึ่งให้ 1101 ผลลัพธ์เดียวกันกับวิธีการหาร หลายคนพบว่าแนวทางนี้เร็วกว่าเมื่อจำกำลังของสองได้ขึ้นใจ
การเติมศูนย์ เลขศูนย์นำหน้า และความกว้างของไบต์
รูปแบบฐานสองเปล่า ๆ ของตัวเลขไม่มีเลขศูนย์นำหน้า เช่นเดียวกับที่เลขฐานสิบ 13 ไม่ได้เขียนว่า 0013 แต่คอมพิวเตอร์จัดเก็บตัวเลขในช่องความกว้างคงที่ ค่าเดียวกันจึงมักถูกเติมทางซ้ายให้ได้ขนาดมาตรฐาน ในรูปไบต์ 13 เขียนได้เป็น 00001101 คือบิตที่มีความหมาย 1101 พร้อมเลขศูนย์นำหน้าสี่ตัวเพื่อเติมให้ครบแปดตำแหน่ง เลขศูนย์ไม่ได้เปลี่ยนค่า มันเพียงเติมให้ได้ความกว้างเท่านั้น
การเลือกความกว้างมีความสำคัญเพราะมันกำหนดช่วงของค่าที่ใส่ได้ แปดบิตเก็บได้ 0 ถึง 255 สิบหกบิตเก็บได้ 0 ถึง 65535 และต่อไปเรื่อย ๆ เมื่อคุณแปลงตรงนี้ คุณจะได้การแทนเลขฐานสองตามธรรมชาติ และคุณเติมศูนย์ในใจให้ได้ความกว้างใดก็ตามที่บริบทของคุณต้องการได้ เครื่องมือนี้ยังป้องกันตัวเลขที่ใหญ่จนเกินความแม่นยำของจำนวนเต็มที่ปลอดภัย โดยปฏิเสธมันแทนที่จะคืนผลลัพธ์ที่ไม่ถูกต้อง
จำนวนติดลบและเศษส่วน
ตัวแปลงนี้ทำงานกับจำนวนเต็มที่ไม่ติดลบ ซึ่งเป็นกรณีที่คุณพบบ่อยที่สุด อย่างไรก็ตาม ควรรู้ไว้ว่าสองกรณีที่ยากกว่าถูกจัดการอย่างไรในที่อื่น คอมพิวเตอร์ไม่ได้จัดเก็บเครื่องหมายลบตามตัวอักษร แต่มันแทนจำนวนเต็มติดลบด้วยวิธีที่เรียกว่าทูส์คอมพลีเมนต์ (two's complement) ซึ่งบิตที่มีนัยสำคัญที่สุดบ่งบอกเครื่องหมาย และค่าติดลบถูกเข้ารหัสด้วยการกลับบิตและบวกหนึ่งภายในความกว้างคงที่
เศษส่วนใช้กลไกที่แตกต่างออกไปอีก ส่วนที่อยู่หลังจุดฐานสองสร้างขึ้นจากกำลังของสองที่เป็นลบ คือ หนึ่งส่วนสอง หนึ่งส่วนสี่ หนึ่งส่วนแปด และต่อไปเรื่อย ๆ และเศษส่วนฐานสิบส่วนใหญ่ เช่น 0.1 ไม่สามารถเขียนได้อย่างแม่นยำในฐานสอง ซึ่งเป็นต้นเหตุของข้อผิดพลาดการปัดเศษเล็ก ๆ ที่คุณบางครั้งเห็นในเลขคณิตจุดลอยตัว (floating-point) สำหรับการแปลงจำนวนเต็มในชีวิตประจำวัน วิธีการหารและกำลังของสองข้างต้นก็เพียงพอแล้ว
ที่ที่มันมีประโยชน์
การแปลงเลขฐานสิบเป็นเลขฐานสองเป็นทักษะหลักในการเรียนวิทยาการคอมพิวเตอร์และเป็นคำถามข้อสอบที่พบบ่อย เพราะมันทำให้ความสัมพันธ์ระหว่างตัวเลขของมนุษย์กับการจัดเก็บของเครื่องเป็นรูปธรรม เมื่อคุณเปลี่ยน 13 เป็น 1101 ด้วยมือได้ แนวคิดอย่างขนาดข้อมูล การล้นของจำนวนเต็ม (integer overflow) และการจัดการบิต (bit manipulation) ก็จะติดตามได้ง่ายขึ้นมาก
มันใช้งานได้จริงด้วย โปรแกรมเมอร์แปลงค่าฐานสิบเป็นฐานสองเพื่อตั้งบิตแฟล็ก สร้างบิตมาสก์ และให้เหตุผลเกี่ยวกับข้อมูลระดับล่าง วิศวกรเครือข่ายเปลี่ยนออกเตตของ IP ฐานสิบเป็นฐานสองเพื่อคำนวณขอบเขตของซับเน็ต งานด้านอิเล็กทรอนิกส์ดิจิทัลและไมโครคอนโทรลเลอร์เคลื่อนไปมาอยู่ตลอดระหว่างตัวเลขฐานสิบที่ผู้คนระบุกับรูปแบบฐานสองที่ฮาร์ดแวร์ใช้จริง และตัวแปลงทีละขั้นตอนที่รวดเร็วก็ช่วยให้การแปลงนั้นแม่นยำ
คำถามที่พบบ่อย
มันแปลงได้ทั้งสองทิศทางไหม
ฉันดูได้ไหมว่าการแปลงคำนวณอย่างไร
อะไรนับเป็นข้อมูลฐานสองที่ถูกต้อง
มีขีดจำกัดว่าตัวเลขใหญ่ได้แค่ไหนไหม
ข้อมูลของฉันถูกเก็บเป็นส่วนตัวหรือไม่
เครื่องมือที่เกี่ยวข้อง
ทำงานต่อด้วยเครื่องมือที่มีประโยชน์เหล่านี้