คณิตศาสตร์

ตัวแปลงฐาน

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

เครื่องมือนี้ช่วยคุณได้ไหม?

ตัวแปลงฐาน คืออะไร?

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

เมื่อไหร่ควรใช้เครื่องคำนวณนี้

  • การดีบักที่อยู่หน่วยความจำและค่าไบต์ในการพัฒนาซอฟต์แวร์ ซึ่งการใช้เลขฐานสิบหกเป็นมาตรฐานที่นิยม
  • การแปลงรหัสสีฐานสิบหกเป็นค่า RGB สำหรับงานออกแบบเว็บและการจัดสไตล์ด้วย CSS
  • การทำความเข้าใจ subnet mask ของ IP และการกำหนดที่อยู่เครือข่าย ซึ่งเขียนในรูปแบบฐานสองหรือฐานสิบหกแบบมีจุด
  • การอ่านรหัสสิทธิ์การเข้าถึงไฟล์ Unix/Linux เช่น chmod 755 ซึ่งใช้สัญกรณ์ฐานแปด
  • การเรียนและสอบวิชาวิทยาการคอมพิวเตอร์ที่ครอบคลุมระบบเลขและการแทนข้อมูล
  • การแข่งขันเขียนโปรแกรมและการเขียนโค้ดระดับต่ำที่การดำเนินการระดับบิตเขียนในรูปฐานสองหรือฐานสิบหก

ขั้นตอน:

  1. พิมพ์ตัวเลขที่ต้องการแปลง
  2. เลือกฐานที่ตัวเลขนั้นถูกเขียนอยู่ในปัจจุบัน (ฐานสอง ฐานแปด ฐานสิบ หรือฐานสิบหก)
  3. อ่านค่าที่แปลงแล้วในทั้งสี่ฐานได้ทันที
  4. ขยายรายละเอียดค่าประจำหลักเพื่อดูว่าแต่ละหลักมีส่วนช่วยต่อผลรวมอย่างไร

สูตร

ค่า = Σ (หลัก × ฐาน^ตำแหน่ง) ตำแหน่งเริ่มนับจาก 0 ที่หลักขวาสุด ตัวอย่าง (ฐานสอง 1011): 1×2³ + 0×2² + 1×2¹ + 1×2⁰ = 11 (ฐานสิบ)

กรณีใช้งาน

  • การดีบักที่อยู่หน่วยความจำและค่าไบต์ในการพัฒนาซอฟต์แวร์
  • การแปลงรหัสสีระหว่างฐานสิบหกและฐานสิบสำหรับงานออกแบบเว็บ
  • การทำงานกับเลขฐานสองและฐานสิบหกในวิชาวิทยาการคอมพิวเตอร์
  • การอ่านรหัสสิทธิ์การเข้าถึงไฟล์ Unix/Linux ที่เขียนในรูปฐานแปด
  • การทำความเข้าใจ subnet mask ของ IP และการกำหนดที่อยู่เครือข่าย

ประโยชน์หลัก

  • แปลงได้ทันทีในฐานสอง ฐานแปด ฐานสิบ และฐานสิบหกพร้อมกัน
  • รายละเอียดค่าประจำหลักแบบภาพแสดงให้เห็นการคำนวณอย่างชัดเจน
  • ตรวจจับหลักที่ไม่ถูกต้องสำหรับฐานที่เลือกได้ทันที
  • ไม่ต้องหารยาวด้วยมือหรือคำนวณเศษซ้ำ ๆ

เคล็ดลับ

  • เมื่ออ่านฐานสิบหก ให้จำไว้ว่าแต่ละหลักมีค่าตรง 4 บิต ซึ่งมีประโยชน์สำหรับการแปลงฐานสองในใจ
  • จัดกลุ่มหลักฐานสองทีละสี่ตัวจากทางขวาเพื่อแปลงเป็นฐานสิบหกได้อย่างรวดเร็วด้วยมือ
  • หลักฐานแปดจัดกลุ่มฐานสองทีละสามตัว นี่คือเหตุผลที่เคยนิยมใช้กับระบบ 12/24 บิตรุ่นเก่า
  • ตรวจสอบซ้ำว่าฐาน 'ต้นทาง' ที่เลือกตรงกับสิ่งที่คุณพิมพ์จริง ก่อนที่จะเชื่อผลลัพธ์

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

  • ป้อนหลักที่ไม่ถูกต้องสำหรับฐานที่เลือก เช่น '9' ในฐานสองหรือฐานแปด
  • ลืมว่าตัวอักษร A-F ในฐานสิบหกไม่สนใจตัวพิมพ์ใหญ่เล็กแต่แทนค่าที่ตายตัว
  • สับสนระหว่างสัญกรณ์เลขศูนย์นำหน้าของฐานแปดกับเลขฐานสิบในภาษาโปรแกรมรุ่นเก่า
  • สมมติว่าการแปลงฐานสองรองรับเลขติดลบได้โดยไม่ต้องใช้ระบบ two's-complement

คำศัพท์สำคัญ

Radix: อีกชื่อหนึ่งของฐานของระบบเลข
สัญกรณ์เชิงตำแหน่ง: ระบบที่ค่าของหลักขึ้นอยู่กับตำแหน่งของมัน
บิต (Bit): เลขฐานสองหนึ่งหลัก (0 หรือ 1)
นิบเบิล (Nibble): กลุ่มของ 4 บิต ซึ่งเท่ากับหนึ่งหลักของฐานสิบหกพอดี

แนวคิดที่เกี่ยวข้อง

  • ค่าสี: สีฐานสิบหกเช่น #FF5733 คือสามไบต์ฐาน 16 ตัวแปลงสี ของเราแปลงระหว่าง hex, RGB, HSL และรูปแบบสีที่มีชื่อ
  • ข้อมูลไบนารีและขนาดข้อมูล: ค่าไบต์ใน hex สอดคล้องกับปริมาณข้อมูลโดยตรง ตัวแปลงข้อมูล ของเราแปลงระหว่างบิต ไบต์ และหน่วยจัดเก็บข้อมูล
  • Timestamp ยุค Unix: เวลา Unix มักแสดงในฐานสิบและฐานสิบหก ตัวแปลง timestamp Unix ของเราแปลง timestamp เป็นวันที่ที่อ่านเข้าใจได้และย้อนกลับ
  • แฮช: ข้อความย่อยทางคริปโต เช่น MD5 และ SHA-256 คือสตริงของหลักฐานสิบหก ตัวสร้างแฮช ของเราสร้างรูปแบบแฮชทั่วไปเหล่านี้
  • การเข้ารหัส: การเข้ารหัสเปอร์เซ็นต์ใน URL เขียนอักขระพิเศษแต่ละตัวเป็น escape แบบฐานสิบหก เช่น %2F ตัวเข้ารหัส-ถอดรหัส URL ของเราเข้ารหัสและถอดรหัสเนื้อหา URL

ตัวอย่าง

การแปลงเลขฐานสิบหก 2F เป็นฐานสิบ: 2×16¹ + 15×16⁰ = 32 + 15 = 47 ในฐานสอง 47 คือ 101111 และในฐานแปดคือ 57

การตีความผลลัพธ์

ตัวแปลงแสดงผลลัพธ์ทุกค่าเป็นสตริงตัวเลขในฐานที่คุณเลือก และรายละเอียดค่าประจำหลักจะขยายแต่ละหลักเป็น หลัก × ฐาน^ตำแหน่ง เพื่อให้คุณตรวจสอบตัวเลขด้วยมือได้แทนการเชื่อเครื่องมือแบบกล่องดำ หลักขวาสุดคือตำแหน่ง 0 และน้ำหนักของมันคือ 1 เสมอ เมื่อเลื่อนไปทางซ้าย น้ำหนักแต่ละตำแหน่งจะคูณด้วยฐานอีกครั้ง (ดังนั้นในฐานสองน้ำหนักคือ 1, 2, 4, 8… และในฐานสิบหกคือ 1, 16, 256…) การบวกทุก หลัก × น้ำหนัก จะได้ค่าฐานสิบที่ตรงกันพอดี ข้อมูลนำเข้าต้องใช้เฉพาะหลักที่ถูกต้องสำหรับฐานที่เลือก — เครื่องมือจะแจ้งเตือนหลักที่ไม่ถูกต้องทันที โปรดทราบว่าเครื่องมือรองรับเฉพาะจำนวนเต็มที่ไม่ติดลบเท่านั้น ค่าติดลบและค่าเศษส่วนต้องใช้วิธี two's complement หรือจุดลอยตัว ซึ่งตัวแปลงจำนวนเต็มแบบตำแหน่งไม่ครอบคลุม

คำถามที่พบบ่อย

แปลงเลขฐานสองเป็นฐานสิบอย่างไร?
นำแต่ละหลักของเลขฐานสองคูณด้วย 2 ยกกำลังตำแหน่งของมัน (เริ่มจาก 0 ทางขวาสุด) แล้วบวกผลลัพธ์ทั้งหมดเข้าด้วยกัน ตัวอย่างเช่น 1011 ในฐานสอง = 1×2³ + 0×2² + 1×2¹ + 1×2⁰ = 8 + 0 + 2 + 1 = 11 ในฐานสิบ
ทำไมจึงใช้เลขฐานสิบหกในงานคอมพิวเตอร์?
เลขฐานสิบหก (ฐาน 16) สอดคล้องกับเลขฐานสองได้อย่างลงตัว เพราะแต่ละหลักของฐานสิบหกแทนค่าได้ตรง 4 บิตพอดี ทำให้เป็นวิธีที่กระชับและอ่านง่ายสำหรับมนุษย์ในการเขียนที่อยู่หน่วยความจำ รหัสสี และค่าไบต์ โดยไม่ต้องใช้ความยาวแบบเลขฐานสองล้วน
หลักที่ถูกต้องในแต่ละฐานมีอะไรบ้าง?
ฐานสองใช้ 0-1 ฐานแปดใช้ 0-7 ฐานสิบใช้ 0-9 และฐานสิบหกใช้ 0-9 บวกกับ A-F (แทนค่า 10-15) หากป้อนหลักที่อยู่นอกช่วงนี้สำหรับฐานที่เลือก ระบบจะแสดงข้อผิดพลาด
สามารถแปลงเลขติดลบหรือเลขทศนิยมที่มีเศษส่วนได้หรือไม่?
เครื่องมือนี้แปลงเฉพาะจำนวนเต็มที่ไม่ติดลบ ซึ่งครอบคลุมกรณีการใช้งานส่วนใหญ่ในงานเขียนโปรแกรม เครือข่าย และงานเรียน สำหรับการแทนค่าเลขฐานสองแบบมีเครื่องหมายหรือมีเศษส่วน จำเป็นต้องใช้เครื่องมือเฉพาะทาง เช่น two's-complement หรือจุดลอยตัว
แปลงรหัสสีฐานสิบหก (เช่น #FF5733) เป็น RGB อย่างไร?
รหัสสีฐานสิบหกก็คือเลขฐานสิบหกสองหลักจำนวนสามตัวรวมกัน นั่นคือ สีแดง สีเขียว และสีน้ำเงิน แบ่ง #FF5733 ออกเป็น FF, 57 และ 33 แล้วแปลงแต่ละคู่เป็นฐานสิบ: FF = 255, 57 = 87 และ 33 = 51 ได้ผลลัพธ์ rgb(255, 87, 51) แต่ละคู่มีค่าตั้งแต่ 00 (0) ถึง FF (255) ดังนั้นสีที่เป็นไปได้ทั้งหมด 16,777,216 สีจึงเขียนแทนด้วยเลขฐานสิบหก 6 หลักได้ทุกสี นี่คือเหตุผลที่ CSS ใช้เลขฐานสิบหกอย่างแพร่หลาย — เพราะกระชับ และแต่ละคู่สอดคล้องกับไบต์ที่เบราว์เซอร์จัดเก็บสำหรับช่องสีนั้นโดยตรง
two's complement คืออะไร และมันแทนเลขฐานสองติดลบได้อย่างไร
Two's complement เป็นวิธีมาตรฐานที่คอมพิวเตอร์ใช้จัดเก็บจำนวนเต็มติดลบ ในการกลับเครื่องหมาย ให้พลิกทุกบิตแล้วบวก 1: สำหรับ +5 ในรูปแบบ 8 บิต (00000101) พลิกบิตได้ (11111010) แล้วบวก 1 จะได้ 11111011 ซึ่งแทน −5 บิตซ้ายสุดทำหน้าที่เป็นตัวบอกเครื่องหมาย — 0 หมายถึงไม่ติดลบ, 1 หมายถึงติดลบ — โดยยังคงวงจรรวมเข้าด้วยกันสำหรับทั้งสองเครื่องหมาย ค่า two's complement 4 บิตจะมีช่วงตั้งแต่ −8 ถึง +7 แทนที่จะเป็น 0 ถึง 15 เพราะครึ่งหนึ่งของช่วงถูกใช้สำหรับจำนวนติดลบ เครื่องมือนี้แปลงจำนวนเต็มที่ไม่ติดลบ สำหรับค่าติดลบคุณสามารถใช้ two's complement กับผลลัพธ์ไบนารีเองได้
ทำไมตัวแปลงของฉันถึงแสดงเลขศูนย์นำหน้าเกินจำเป็นในเลขฐานสอง?
เลขศูนย์นำหน้าไม่เคยเปลี่ยนค่าของตัวเลข — 0011 และ 11 เป็นเลขฐานสิบ 3 เหมือนกัน — แต่ปกติแล้วมักแสดงโดยตั้งใจ โปรแกรมเมอร์จัดกลุ่มเลขฐานสองเป็นนิบเบิล (4 บิต) หรือไบต์ (8 บิต) เพื่อให้รูปแบบสอดคล้องกับเลขฐานสิบหก: 0011 0011 อ่านได้เป็น 33 ในฐานสิบหก ในขณะที่ 110011 ที่ไม่จัดกลุ่มแยกยากกว่า บางเครื่องมือเติมศูนย์จนได้ความกว้างคงที่ (8, 16 หรือ 32 บิต) เพื่อให้สะท้อนรีจิสเตอร์จริงในคอมพิวเตอร์ หากคุณต้องการรูปแบบที่สั้นที่สุด เพียงตัดเลขศูนย์นำหน้าออกจากผลลัพธ์ — ค่ายังคงเดิม
เลขฐานแปดถูกใช้กับสิทธิ์การเข้าถึงไฟล์ Unix (chmod) อย่างไร
สิทธิ์ Unix ประกอบด้วยสามกลุ่ม — อ่าน (r) เขียน (w) และเรียกใช้ (x) — สำหรับเจ้าของ กลุ่ม และผู้ใช้กลุ่มอื่น แต่ละกลุ่มคือเลขฐานสอง 3 บิต จึงตรงกับเลขฐานแปดหนึ่งหลัก: rwx = 7, rw- = 6, r-x = 5, r-- = 4 คำสั่ง chmod 755 จึงกำหนดให้เจ้าของมี rwx กลุ่มมี r-x และผู้ใช้กลุ่มอื่นมี r-x — นี่คือเหตุผลที่ 7, 5, 5 ปรากฏเป็นเลขฐานแปดสามหลัก เลขฐานแปดเป็นรูปแบบที่เหมาะสมที่นี่ เพราะแต่ละหลักครอบคลุม 3 บิตพอดี ตรงกับตำแหน่งสิทธิ์สามตำแหน่งของแต่ละฝ่าย
เครื่องมือนี้แปลงตัวเลขที่ใหญ่มากได้โดยไม่สูญเสียความแม่นยำหรือไม่?
ตัวแปลงนี้แม่นยำสำหรับจำนวนเต็มทุกค่าสูงถึง 2^53 − 1 = 9,007,199,254,740,991 ซึ่งเป็นจำนวนเต็มที่ใหญ่ที่สุดที่ JavaScript แทนค่าได้อย่างแม่นยำ ค่าที่เกินขีดจำกัดนี้อาจถูกปัดให้เป็นจำนวนที่แทนค่าได้ใกล้เคียงที่สุด ดังนั้นผลลัพธ์อาจคลาดเคลื่อนจากการแปลงที่แม่นยำ สำหรับงานทั่วไป — รหัสสี ที่อยู่หน่วยความจำ subnet mask ของ IP หมายเลขพอร์ต และตัวเลขในงานเรียน — ช่วงนี้มากเกินพอ หากคุณต้องการแปลงเกิน 53 บิต คุณจะต้องใช้เครื่องมือความแม่นยำตามอำเภอใจมากกว่าตัวแปลงในเบราว์เซอร์มาตรฐาน
แปลงเลขฐานสิบเป็นฐานสองด้วยมืออย่างไร?
นำตัวเลขมาหารด้วย 2 ซ้ำ ๆ โดยจดเศษที่เหลือในแต่ละขั้น จากนั้นอ่านเศษจากล่างขึ้นบน สำหรับ 47: 47 ÷ 2 = 23 เศษ 1, 23 ÷ 2 = 11 เศษ 1, 11 ÷ 2 = 5 เศษ 1, 5 ÷ 2 = 2 เศษ 1, 2 ÷ 2 = 1 เศษ 0, 1 ÷ 2 = 0 เศษ 1 อ่านเศษจากล่างขึ้นบนได้ 101111 ซึ่งเท่ากับ 32 + 8 + 4 + 2 + 1 = 47 วิธีการหารซ้ำแบบเดียวกันนี้ใช้ได้กับทุกฐาน — หารด้วย 8 สำหรับฐานแปด หารด้วย 16 สำหรับฐานสิบหก — โดยเก็บเศษในลำดับย้อนกลับ
แปลงระหว่างฐานสองและฐานสิบหกโดยตรงโดยไม่ผ่านฐานสิบอย่างไร?
เพราะเลขฐานสิบหกหนึ่งหลักเท่ากับ 4 บิตพอดี คุณจึงแปลงได้โดยไม่ต้องผ่านฐานสิบ จัดกลุ่มเลขฐานสองเป็นชุดละสี่จากทางขวา แล้วแปลงแต่ละกลุ่มเป็นหลักฐานสิบหก: 101111 → 0010 1111 → 2F แต่ละกลุ่ม 4 บิตแทนสัญลักษณ์ฐานสิบหกหนึ่งตัว (0000=0 ไปจนถึง 1111=F) ในทางกลับกัน ขยายเลขฐานสิบหกแต่ละหลักออกเป็นสี่บิต: 2F → 0010 1111 เทคนิคลัดเดียวกันนี้ใช้กับฐานแปด ซึ่งจับคู่กับฐานสองเป็นกลุ่มละสามบิต — นี่คือเหตุผลที่ฐานสอง ฐานแปด และฐานสิบหกแปลงหากันได้อย่างง่ายดาย

ค้นพบเครื่องมือเพิ่มเติม

คัดสรรใหม่จากคลังเครื่องมือทั้งหมดของเรา