เครื่องคำนวณการแปลงเลขฐาน

แปลงจำนวนเต็มเป็นเลขฐานสอง ฐานแปด ฐานสิบ และฐานสิบหก

ป้อนจำนวนเต็มฐานสิบที่คุณต้องการแปลง

ค่าเลขฐานสอง

11111111

เลขฐานแปด377
เลขฐานสิบ255
เลขฐานสิบหกFF

วิธีใช้งานเครื่องคำนวณการแปลงฐานเลขนี้

  1. ป้อนจำนวนเต็ม

    พิมพ์จำนวนเต็มที่ไม่เป็นลบลงในช่องจำนวนเต็ม (เช่น 255 หรือ 4096)

  2. อ่านค่าเลขฐานสอง

    ผลลัพธ์ค่าฐานสองแสดงการแทนค่าในระบบเลขฐาน 2

  3. ตรวจสอบเลขฐานแปดและฐานสิบหก

    ตรวจสอบผลลัพธ์เลขฐานแปดและฐานสิบหกสำหรับการแทนค่าที่กระชับ

  4. ตรวจสอบเลขฐานสิบ

    ผลลัพธ์เลขฐานสิบช่วยยืนยันค่าเริ่มต้นเพื่อการตรวจสอบความถูกต้อง

ระเบียบวิธีคำนวณ

วิธีการทำงานของเครื่องคำนวณการแปลงฐานเลขนี้

เครื่องคำนวณการแปลงฐานเลขนี้จะรับจำนวนเต็มในระบบเลขฐานสิบ (base 10) และแสดงผลในรูปแบบเลขฐานสอง (base 2), เลขฐานแปด (base 8) และเลขฐานสิบหก (base 16) ซึ่งเป็นระบบตัวเลขสี่ระบบที่ใช้บ่อยที่สุดในด้านคอมพิวเตอร์ ระบบตัวเลขตามตำแหน่งทุกระบบทำงานในลักษณะเดียวกัน คือตำแหน่งของแต่ละหลักจะแทนเลขยกกำลังของฐานที่เพิ่มขึ้นตามลำดับ และค่าของตัวเลขคือผลรวมของแต่ละหลักคูณด้วยค่าน้ำหนักตามตำแหน่ง การแปลงระหว่างฐานเลขเป็นการดำเนินการพื้นฐานในการเขียนโปรแกรมระดับต่ำ, การออกแบบตรรกะดิจิทัล, วิศวกรรมเครือข่าย (ที่อยู่ MAC และ IPv6), รหัสสีใน CSS, การกำหนดสิทธิ์ไฟล์ใน Unix และการตรวจสอบที่อยู่หน่วยความจำระหว่างการดีบั๊ก

สูตร
การหารซ้ำ: หาร N ด้วยฐานเป้าหมาย R บันทึกเศษที่เหลือ ทำซ้ำกับผลหารจนกว่าจะเป็น 0 จากนั้นอ่านเศษที่เหลือย้อนกลับจากล่างขึ้นบน
N จำนวนเต็มที่ป้อนในระบบเลขฐานสิบ (base 10)
R ฐานเป้าหมาย (2 สำหรับฐานสอง, 8 สำหรับฐานแปด, 16 สำหรับฐานสิบหก)
ผลหาร ผลลัพธ์ของการหารจำนวนเต็ม N ÷ R ในแต่ละขั้นตอน ซึ่งจะกลายเป็น N ตัวใหม่สำหรับการคำนวณในรอบถัดไป
เศษ N mod R ในแต่ละขั้นตอน — จะกลายเป็นหนึ่งหลักของผลลัพธ์ที่แปลงแล้ว (0–1 สำหรับฐานสอง, 0–7 สำหรับฐานแปด, 0–F สำหรับฐานสิบหก)
ผลลัพธ์ เศษที่ได้จากการอ่านย้อนกลับจากตัวสุดท้ายไปยังตัวแรก จะประกอบกันเป็นตัวเลขในฐานเป้าหมาย
ตัวอย่าง

แปลงเลขฐานสิบ 255 เป็นฐานสอง, ฐานแปด และฐานสิบหก สำหรับฐานสอง (R = 2): 255 ÷ 2 = 127 เศษ 1, 127 ÷ 2 = 63 เศษ 1, 63 ÷ 2 = 31 เศษ 1, 31 ÷ 2 = 15 เศษ 1, 15 ÷ 2 = 7 เศษ 1, 7 ÷ 2 = 3 เศษ 1, 3 ÷ 2 = 1 เศษ 1, 1 ÷ 2 = 0 เศษ 1 เมื่ออ่านเศษจากล่างขึ้นบนจะได้: 11111111 สำหรับฐานแปด (R = 8): 255 ÷ 8 = 31 เศษ 7, 31 ÷ 8 = 3 เศษ 7, 3 ÷ 8 = 0 เศษ 3 → 377 สำหรับฐานสิบหก (R = 16): 255 ÷ 16 = 15 เศษ 15 (F), 15 ÷ 16 = 0 เศษ 15 (F) → FF

ฐานสิบ 4096 → ฐานสอง 1000000000000, ฐานแปด 10000, ฐานสิบหก 1000 มีประโยชน์ในการทำความเข้าใจว่า 4 KiB = 4096 ไบต์

ฐานสิบ 15 → ฐานสอง 1111, ฐานแปด 17, ฐานสิบหก F โดยแต่ละหลักของฐานสิบหกจะตรงกับสี่บิตพอดี เช่น F = 1111

ข้อสมมติฐาน
  • ข้อมูลนำเข้าต้องเป็นจำนวนเต็มที่ไม่เป็นลบ (ศูนย์หรือจำนวนเต็มบวก) ค่าทศนิยมและจำนวนลบต้องใช้อัลกอริทึมเพิ่มเติม (เช่น two's complement สำหรับเลขฐานสองแบบมีเครื่องหมาย) ซึ่งอยู่นอกเหนือขอบเขตของเครื่องมือนี้
  • เลขฐานสิบหกที่มากกว่า 9 จะแทนด้วยตัวอักษรภาษาอังกฤษตัวพิมพ์ใหญ่ A–F ตามมาตรฐานสากลในภาษาโปรแกรม, RFC และเอกสารทางฮาร์ดแวร์ส่วนใหญ่
  • เลขศูนย์นำหน้าจะถูกละไว้ในผลลัพธ์ สำหรับการแสดงผลแบบความกว้างคงที่ (เช่น ฐานสองขนาด 8 บิต หรือ 32 บิต) โปรดเติมเลขศูนย์ด้วยตนเองเพื่อให้ได้ความกว้างที่ต้องการ
  • เครื่องคำนวณนี้รองรับเฉพาะจำนวนเต็มที่ไม่เป็นลบเท่านั้น ค่าที่สูงกว่า 2^53 − 1 (JavaScript's Number.MAX_SAFE_INTEGER) จะไม่ได้รับการยอมรับ เพื่อให้ตัวเลขที่แสดงยังคงความแม่นยำสูงสุด
หมายเหตุ
  • เลขฐานสิบหกแต่ละหลักจะตรงกับเลขฐานสอง 4 หลัก (บิต) และเลขฐานแปดแต่ละหลักจะตรงกับเลขฐานสอง 3 บิต ความสัมพันธ์นี้ช่วยให้การแปลงค่าในใจระหว่างฐานสิบหก ฐานแปด และฐานสองทำได้รวดเร็วเมื่อคุณจดจำรูปแบบ nibble ทั้ง 16 แบบได้
  • ค่าที่พบบ่อยและควรจดจำ: 0xFF = 255, 0x100 = 256, 0xFFFF = 65535, 0xFFFFFFFF = 4,294,967,295 (ค่าสูงสุดของจำนวนเต็ม 32 บิตแบบไม่มีเครื่องหมาย)
  • สิทธิ์การเข้าถึงไฟล์ของ Unix ใช้เลขฐานแปด: 755 หมายถึง rwxr-xr-x (เจ้าของอ่าน/เขียน/ประมวลผล, กลุ่มและผู้อื่นอ่าน/ประมวลผล) เลขฐานแปดแต่ละหลักจะเข้ารหัสบิตสิทธิ์สามบิต
  • รหัสสี CSS แบบฐานสิบหกคือค่าไบต์เลขฐานสิบหกสามค่าที่ต่อกัน ซึ่งแทนช่องสีแดง เขียว และน้ำเงิน เช่น #FF8800 คือสีแดง 255, เขียว 136, น้ำเงิน 0
แหล่งที่มา
  1. ทฤษฎีระบบตัวเลขตามตำแหน่ง — Knuth, D. E., The Art of Computer Programming, เล่ม 2: Seminumerical Algorithms, ส่วนที่ 4.1
  2. IEEE 754-2019 — มาตรฐานสำหรับเลขคณิตทศนิยม (บริบทการแทนค่าจำนวนเต็ม)
  3. RFC 4291 — สถาปัตยกรรมการกำหนดที่อยู่ IP เวอร์ชัน 6 (สัญกรณ์เลขฐานสิบหกสำหรับ IPv6)

ทำความเข้าใจระบบตัวเลขในการประมวลผลคอมพิวเตอร์

ระบบตัวเลขตามตำแหน่งทุกระบบใช้ฐาน (radix) และกำหนดน้ำหนักให้แต่ละหลักตามตำแหน่ง ในระบบเลขฐานสิบ (ฐาน 10) หลักขวาสุดคือหลักหน่วย ถัดมาคือหลักสิบ และหลักร้อย ระบบเลขฐานสอง (ฐาน 2) ใช้เพียง 0 และ 1 ซึ่งสอดคล้องโดยตรงกับสถานะเปิด/ปิดของทรานซิสเตอร์ ระบบเลขฐานแปด (ฐาน 8) จัดกลุ่มสามบิตต่อหนึ่งหลัก และระบบเลขฐานสิบหก (ฐาน 16) จัดกลุ่มสี่บิตต่อหนึ่งหลัก โดยใช้ A–F แทนค่า 10–15 การแปลงระหว่างฐานใช้วิธีการหารซ้ำ: หารตัวเลขด้วยฐานที่ต้องการ บันทึกเศษ หารผลลัพธ์ต่อไปจนกว่าจะเป็นศูนย์ จากนั้นอ่านเศษย้อนกลับ อัลกอริทึมนี้เป็นพื้นฐานของการแปลงฐานทั้งหมดในการเขียนโปรแกรม

กรณีการใช้งานจริงของการแปลงฐานสำหรับนักพัฒนา

นักพัฒนาใช้การแปลงฐานเมื่อตรวจสอบ memory dump, ดีบักการดำเนินการระดับบิต (bitwise), ตีความสิทธิ์ของไฟล์ และทำงานกับรหัสสี สิทธิ์ของไฟล์ใน Unix (เช่น 755) เป็นเลขฐานแปด: แต่ละหลักจะเข้ารหัสการอ่าน/เขียน/ประหาร (read/write/execute) สำหรับเจ้าของ กลุ่ม และผู้อื่น รหัสสี CSS hex เช่น #FF8800 คือไบต์สามชุดที่ต่อกันในรูปแบบฐานสิบหก ที่อยู่ IPv6 เขียนในรูปฐานสิบหก Bitmask และ flag มักแสดงในรูปฐานสิบหกเพื่อให้อ่านง่าย (0xFF สำหรับ byte mask, 0xFFFF สำหรับ 16 บิต) เมื่อดีบักโค้ดระดับต่ำหรือโปรโตคอลเครือข่าย การแปลงระหว่างฐานสิบ ฐานสิบหก และฐานสองจะช่วยให้เห็นรูปแบบบิตที่อยู่เบื้องหลังได้อย่างรวดเร็ว

คำถามที่พบบ่อยเกี่ยวกับเครื่องคำนวณการแปลงฐานเลข

ทำไมจึงมีการใช้เลขฐานสอง ฐานแปด และฐานสิบหกในระบบคอมพิวเตอร์?

เลขฐานสองเชื่อมโยงโดยตรงกับสถานะเปิด/ปิดของทรานซิสเตอร์ ทำให้เป็นภาษาหลักของฮาร์ดแวร์ เลขฐานแปดและฐานสิบหกเป็นตัวย่อที่กะทัดรัดสำหรับเลขฐานสอง โดยเลขฐานสิบหกหนึ่งหลักแทนค่าสี่บิตพอดี และเลขฐานแปดหนึ่งหลักแทนค่าสามบิต โปรแกรมเมอร์จึงใช้เลขเหล่านี้เพื่อแสดงที่อยู่ bitmask และรหัสสีได้กระชับกว่าสตริงเลขฐานสองที่ยาวเหยียด

ฉันจะแปลงในทิศทางอื่นได้อย่างไร (เช่น จากฐานสิบหกเป็นฐานสิบ)?

คูณตัวเลขแต่ละหลักด้วยเลขฐานยกกำลังตามตำแหน่งแล้วนำผลลัพธ์มารวมกัน ตัวอย่างเช่น เลขฐานสิบหก 1A3 = 1×16² + 10×16¹ + 3×16⁰ = 256 + 160 + 3 = 419 ในเลขฐานสิบ

จะเกิดอะไรขึ้นกับตัวเลขที่มีค่ามาก?

เครื่องคำนวณรองรับค่าสูงสุดไม่เกินขีดจำกัดจำนวนเต็มที่ปลอดภัยของ JavaScript: 2^53 − 1 (9,007,199,254,740,991) ตัวเลขที่มากกว่านี้จะถูกปฏิเสธเนื่องจากอาจสูญเสียความแม่นยำของหลักที่มีนัยสำคัญน้อยที่สุดในเบราว์เซอร์

ฉันสามารถแปลงเลขติดลบหรือเศษส่วนได้หรือไม่?

เครื่องมือนี้รองรับจำนวนเต็มที่ไม่เป็นลบ ในทางคอมพิวเตอร์ จำนวนเต็มลบมักจะแสดงด้วย two's complement ในขนาดบิตที่คงที่ และค่าเศษส่วนจะใช้การเข้ารหัสทศนิยมแบบ IEEE 754 ซึ่งทั้งสองอย่างนี้ต้องใช้พารามิเตอร์เพิ่มเติมที่เครื่องคำนวณนี้ไม่ได้เก็บข้อมูล

ทำไมคำนำหน้า 0x ถึงปรากฏในโค้ดแต่ไม่ปรากฏในผลลัพธ์?

คำนำหน้า 0x (และ 0b สำหรับฐานสอง, 0o สำหรับฐานแปด) คือไวยากรณ์เฉพาะของภาษาโปรแกรมที่บอกคอมไพเลอร์หรืออินเทอร์พรีเตอร์ว่ากำลังใช้เลขฐานใด เครื่องคำนวณนี้จะแสดงผลเป็นชุดตัวเลขดิบโดยไม่มีคำนำหน้า เพื่อให้สามารถนำไปใช้งานต่อได้ในทุกบริบท

เขียนโดย ยาน เครเนก ผู้ก่อตั้งและนักพัฒนาหลัก
ตรวจสอบโดย การตรวจสอบระเบียบวิธีของ DigitSum การตรวจสอบสูตรและ QA
อัปเดตล่าสุดเมื่อ 10 มี.ค. 2569

ใช้ข้อมูลนี้เพื่อการประมาณการเท่านั้น และควรตรวจสอบการตัดสินใจที่สำคัญกับผู้เชี่ยวชาญที่มีคุณสมบัติเหมาะสม

ข้อมูลที่ป้อนจะถูกเก็บไว้ในเบราว์เซอร์ เว้นแต่จะมีฟีเจอร์ในอนาคตแจ้งให้คุณทราบเป็นอย่างอื่น