เครื่องคิดเลขค่าความต่างของเลขฐานสอง การแปลงเลขฐานสองและสิบ, รองรับเลขมีเครื่องหมายและการคำนวณค่าความต่าง
บทนำ: คำแนะนำเกี่ยวกับตัวแปรที่แปลงจากฐานสองและค่าครอบครอง:
เครื่องมือนี้สามารถแปลงตัวเลขที่ป้อนระหว่างฐานสองหรือฐานสิบได้ โดยสามารถแปลงตัวเลขบวกและลบได้ทั้งนี้ยังสามารถให้ผลลัพธ์ของการแปลงค่าครอบครอง 1 และ 2 รวมทั้งสนับสนุนการป้อนค่าครอบครองเพื่อให้ได้ตัวเลขฐานสองต้นฉบับ
คืออะไรคือค่าครอบครอง
ในสาขาวิทยาคอมพิวเตอร์ ค่าครอบครองเป็นวิธีหนึ่งในการแสดงตัวเลขลบ มีค่าครอบครองที่พบบ่อยที่สุด 2 แบบ ได้แก่ ค่าครอบครอง 1 และ 2 ค่าครอบครอง 1 ได้มาจากการกลับดิบของทุกหลักของตัวเลขทุกหลักจากฐานสอง (0 กลับเป็น 1, 1 กลับเป็น 0) และค่าครอบครอง 2 ได้มาจากค่าครอบครอง 1 โดยเพิ่ม 1 นอกจากนี้ยังใช้กันอย่างแพร่หลายในระบบคอมพิวเตอร์ทุกระบบเนื่องจากทำให้การบวกและลบเป็นไปได้ง่ายขึ้น เช่น สมมติว่าเรามีตัวเลขฐานสอง 8 บิต คือ 10011011 ค่าครอบครอง 1 คือ 01100100 และค่าครอบครอง 2 คือ 01100101 สามารถดูรายละเอียดเพิ่มเติมได้ที่ Two's complement
ค่าครอบครองถูกนำไปใช้ทำอย่างไร?
ในด้านคอมพิวเตอร์ การใช้ค่าครอบครองเพื่อแสดงและดำเนินการกับตัวเลขลบมีข้อได้เปรียบหลายประการหลายข้อดังนี้:
- การออกแบบฮาร์ดแวร์ที่เรียบง่าย: การใช้ค่าครอบครองทำให้การดำเนินการบวกและลบที่แตกต่างกันในฮาร์ดแวร์เป็นไปได้ง่ายขึ้น เช่น หากต้องการคำนวณ A-B เราสามารถแปลง B เป็นค่าครอบครองแล้วบวกกับ A ได้ ทำให้เราสามารถใช้เครื่องบวกเดียวกันในการดำเนินการบวกและลบ
- ประหยัดพื้นที่จัดเก็บ: การใช้ค่าครอบครองทำให้ตัวเลขบวกและลบในรูปแบบฐานสองแตกต่างกันเพียงที่บิตหลักสูงสุด (บิตเครื่องหมาย) เท่านั้น ดังนั้น เราไม่ต้องใช้พื้นที่เพิ่มเติมในการจัดเก็บสัญญาณของตัวเลข
- การเปรียบเทียบตัวเลขได้ง่าย: ในระบบค่าครอบครอง เราสามารถเปรียบเทียบขนาดของสองตัวเลขฐานสองโดยตรงโดยไม่ต้องคิดถึงเครื่องหมายของพวกเขา นั่นเป็นเพราะในระบบค่าครอบครอง สำหรับตัวเลข A และ B ใด ๆ หาก A > B แล้วการแสดงตัวเลขของ A จะมีค่ามากกว่าการแสดงตัวเลขของ B
วิธีการแปลงเลขสิบเป็นเลขฐานสองในภาษาโปรแกรมต่างๆ
Java | Integer.toBinaryString(decimal_number) |
JavaScript | let binary = decimal_number.toString(2); |
Microsoft .NET / C# | string binary = Convert.ToString(decimal_number, 2); |
Python | binary = bin(decimal_number)[2:] |
Ruby | binary = decimal_number.to_s(2) |
Go | import strconv binary := strconv.FormatInt(decimal_number, 2) |