เครื่องคำนวณคอมพลีเมนต์เลขฐานสอง การแปลงเลขฐานสองและฐานสิบ รองรับจำนวนเต็มมีเครื่องหมายและการคำนวณคอมพลีเมนต์

ผลการแปลง

เครื่องคำนวณคอมพลีเมนต์สอง: แนะนำเครื่องมือ

เครื่องมือออนไลน์ฟรีสำหรับแปลงตัวเลขระหว่างระบบเลขฐานสองและฐานสิบ คำนวณคอมพลีเมนต์ 1 และคอมพลีเมนต์ 2 รวมถึงแปลงคอมพลีเมนต์กลับเป็นค่าต้นฉบับ รองรับจำนวนเต็มมีเครื่องหมายและไม่มีเครื่องหมาย ไม่ต้องติดตั้งหรือสมัครสมาชิก

ฟีเจอร์หลัก

  • ฐานสิบ → ฐานสอง: แปลงจำนวนเต็มบวกและลบ
  • ฐานสอง → ฐานสิบ: แสดงผลทั้งแบบมีเครื่องหมายและไม่มีเครื่องหมาย
  • คอมพลีเมนต์ 1: กลับบิตทั้งหมด (0↔1)
  • คอมพลีเมนต์ 2: คอมพลีเมนต์ 1 บวก 1 มาตรฐานการแทนจำนวนลบในโปรเซสเซอร์ทุกรุ่น
  • การแปลงย้อนกลับ: คืนค่าเลขฐานสองต้นฉบับจากคอมพลีเมนต์โดยอัตโนมัติ
  • ความยาวบิต: 8, 16, 32 และ 64 บิต

กรณีการใช้งาน

  • นักศึกษาวิทยาการคอมพิวเตอร์และวิศวกรรมอิเล็กทรอนิกส์: ตรวจสอบการบ้านสถาปัตยกรรมคอมพิวเตอร์ เตรียมสอบวิชาระบบดิจิทัล
  • นักพัฒนา C/C++ และระบบฝังตัว: ดีบักการดำเนินการบิต วิเคราะห์การล้นของจำนวนเต็ม ตรวจสอบประเภท int8_t int16_t int32_t
  • นักพัฒนา Java: ประเภทจำนวนเต็มทั้งหมดใน Java ใช้คอมพลีเมนต์สอง ช่วยแสดงภาพการทำงานของบิตมาสก์และการเลื่อนบิต
  • นักพัฒนา Python: ทำความเข้าใจผลลัพธ์ของตัวดำเนินการ ~x และบิตมาสก์สำหรับจำนวนลบ
  • นักออกแบบวงจรดิจิทัลและ FPGA: ตรวจสอบค่าอินพุต/เอาต์พุตของหน่วยคำนวณเลขคณิตและตรรกะ (ALU) ในระดับบิต

คู่มือการใช้งานทีละขั้นตอน

  1. เลือกทิศทางการแปลง: "ฐานสิบ → ฐานสอง" หรือ "ฐานสอง → ฐานสิบ"
  2. ป้อนตัวเลขในช่องรับค่า (สำหรับจำนวนลบในรูปแบบทศนิยม ให้ใส่เครื่องหมายลบ เช่น −42)
  3. เลือกความยาวบิต: 8, 16, 32 หรือ 64 บิต
  4. ผลลัพธ์จะแสดงทันที: เลขฐานสองไม่มีเครื่องหมาย คอมพลีเมนต์ 1 และคอมพลีเมนต์ 2
  5. ใช้ปุ่ม "คัดลอกไปยังคลิปบอร์ด" เพื่อนำผลลัพธ์ไปวางในโค้ดได้โดยตรง

คอมพลีเมนต์สองคืออะไร?

ในวิทยาการคอมพิวเตอร์ คอมพลีเมนต์สอง (two's complement) คือวิธีมาตรฐานในการแทนจำนวนเต็มมีเครื่องหมายในคอมพิวเตอร์ยุคใหม่ทุกเครื่อง วิธีนี้ช่วยให้การบวกและการลบสามารถใช้วงจรฮาร์ดแวร์ชุดเดียวกันได้ ทำให้การออกแบบโปรเซสเซอร์ง่ายขึ้นมาก

คอมพลีเมนต์ 1: กลับบิตทั้งหมด ตัวอย่าง: 00001010 (+10) → 11110101

คอมพลีเมนต์ 2: คอมพลีเมนต์ 1 บวก 1 ตัวอย่าง: 11110101 + 1 = 11110110 (แทน −10 ในระบบ 8 บิต)

อ่านเพิ่มเติม: Two's complement — Wikipedia

เคล็ดลับการใช้งาน

  • ช่วงค่าตามความยาวบิต: 8 บิต (−128 ถึง +127), 16 บิต (−32,768 ถึง +32,767), 32 บิต (−2,147,483,648 ถึง +2,147,483,647)
  • หากค่าเกินขอบเขต จะมีข้อความแจ้งเตือน ให้เลือกความยาวบิตที่มากขึ้น
  • ใน C ตัวดำเนินการ ~x คำนวณคอมพลีเมนต์ 1 และ -x ให้คอมพลีเมนต์ 2
  • ใน Python (~x) & 0xFF ให้คอมพลีเมนต์ 2 สำหรับ 8 บิต

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

  • เครื่องมือนี้ฟรีหรือไม่?
    ใช่ ฟรีทั้งหมดและไม่ต้องสมัครสมาชิก
  • แปลงจำนวนลบทศนิยมเป็นเลขฐานสองได้อย่างไร?
    เพียงป้อนค่าที่มีเครื่องหมายลบ เครื่องมือจะแสดงรูปแบบคอมพลีเมนต์ 2 โดยอัตโนมัติ
  • คอมพลีเมนต์ 1 และคอมพลีเมนต์ 2 ต่างกันอย่างไร?
    คอมพลีเมนต์ 1 เพียงกลับบิตทั้งหมด ทำให้ศูนย์มีสองรูปแบบ (00…0 และ 11…1) คอมพลีเมนต์ 2 แก้ปัญหานี้โดยบวก 1 เพิ่ม ทำให้ศูนย์มีรูปแบบเดียวและการคำนวณเลขคณิตถูกต้อง
  • รองรับความยาวบิตสูงสุดเท่าไร?
    สูงสุด 64 บิต
  • คำนวณคอมพลีเมนต์ 2 ใน Java อย่างไร?
    การดำเนินการ -x ใน Java ให้คอมพลีเมนต์ 2 โดยตรง เมธอด Integer.toBinaryString(x) แสดงรูปแบบ 32 บิตคอมพลีเมนต์สำหรับจำนวนลบ

วิธีแปลงเลขฐานสิบเป็นเลขฐานสองในภาษาโปรแกรมต่างๆ

JavaInteger.toBinaryString(decimal_number)
JavaScriptlet binary = decimal_number.toString(2);
Microsoft .NET / C#string binary = Convert.ToString(decimal_number, 2);
Pythonbinary = bin(decimal_number)[2:]
Rubybinary = decimal_number.to_s(2)
Go import strconv
binary := strconv.FormatInt(decimal_number, 2)

เครื่องมือที่มีประโยชน์อื่น ๆ: