คุณเคยได้ยินตัวเลขติดลบมาบ้างแล้ว หากคุณเคยสัมผัสโลกของวิทยาการคอมพิวเตอร์และการเขียนโปรแกรมคอมพิวเตอร์มาบ้างแล้ว แนวคิดเรื่องเลขฐานสองก็ไม่ต่างไปจากเดิมอย่างสิ้นเชิง แต่ถ้าคุณไม่ได้สำรวจโลกของการเขียนโปรแกรมเป็นการส่วนตัว คุณอาจไม่เคยทำงานกับเลขฐานสองอย่างเป็นรูปธรรม
เนื่องจากคอมพิวเตอร์ไม่สามารถ "คิด" หรือ "ตัดสินใจ" ได้ด้วยตัวเอง แต่สามารถปฏิบัติตามคำสั่งที่มีความแม่นยำอย่างไม่ลดละ นักคณิตศาสตร์ได้เข้ามาตั้งนานแล้ว ด้วยวิธีการที่คอมพิวเตอร์ (หรือมนุษย์ที่อดทนเพียงพอ) ทำการบวก ลบ และการคำนวณทางคณิตศาสตร์อื่น ๆ โดยใช้เพียงตัวเลข 0 และ 1.
แต่มีวิธีรวมแนวคิดทั้งสองนี้เพื่อสร้างตัวเลขติดลบหรือไม่? มันง่ายพอๆ กับการบอกให้เครื่องติดแถบแนวนอนเล็กๆ ข้างหน้าตัวเลขที่มีอยู่ด้วยปากกาและกระดาษ หรือปัจจัย "บิตและไบต์" ทำให้สิ่งต่างๆ เกี่ยวข้องมากขึ้นหรือไม่
เลขฐานสองคืออะไร?
คอมพิวเตอร์มีพลังในการประมวลผลมหาศาล และแม้แต่คนขี้โกงเก่าก็สามารถคำนวณได้ในอัตราที่ดูเหมือนจะเข้าใจยากแม้แต่คนที่มีพรสวรรค์ทางคณิตศาสตร์มากที่สุด แต่พวกมันไม่ใช่สมอง และวิธีเดียวที่จะให้พวกเขาจัดการกับข้อมูลที่ซับซ้อนคือการผลักไสทุกอย่างที่เป็นไปได้ให้เป็นหนึ่งในสองสถานะ เช่น เปิดหรือปิด
ใน "computer-ese" 0 หรือ 1 ตัวเดียวเรียกว่า a นิดหน่อย. กลุ่มเหล่านี้ ได้แก่ nybble (4 บิต) ที่รู้จักกันดี ไบต์ (8), ที่ คำ (1) และ คำยาว (32).
ตัวเลขทศนิยมที่คุณมักจะเห็น เช่น 492 และ 35 คือ "ฐาน 10" เนื่องจากมีสัญลักษณ์โปรเกรสซีฟ 10 ตัว (ตัวเลข 0 ถึง 9) ที่ "พลิก" ไปที่ถัดไปทางซ้าย — "กำลัง 10" ถัดไป แทนเลขฐานสอง มีเพียงสองสัญลักษณ์ (ตัวเลข 0 และ 1) และ are "เบส-2" การย้ายไปทางซ้ายแต่ละครั้งจากจุดสิ้นสุดของตัวเลขคือกำลังที่เพิ่มขึ้นของสอง: ตัวเลขสุดท้ายแทน 1, 2 ถัดไป, จากนั้น 4, 8, 16 และ เป็นต้น
- เลขฐานสิบคือตัวเลขใดๆ ในระบบฐาน 10 ไม่จำเป็นต้องเป็นตัวเลขที่มีจุดทศนิยม
ตัวอย่างของเลขฐานสอง
เลขฐานสอง "nybble" 0101 มี 1 ในหลัก 1 และ 4 และ 0 ใน 2 และ 8 ดังนั้นทศนิยมของมันคือ 1 + 4 = 5
ในทำนองเดียวกัน ไบต์ 1001 1100 เทียบเท่ากับ 128 + 16 + 8 + 4 (28 + 25 + 24 + 23) = 156.
ดิ เติมเต็ม ของเลขฐานสองเป็นเพียงตัวเลขที่มีตัวเลข "สลับ" ตัวอย่างเช่น ส่วนเสริมของ 1001 1100 = 0110 0011
การแปลงตัวเลขติดลบเป็นไบนารี
วิธีที่คุณแปลงเลขฐานสิบติดลบเป็นเลขฐานสองนั้นค่อนข้างจะแตกต่างจากการแปลงตัวเลขอื่น ๆ คุณได้กระทำไปเพราะว่าจิตใจของคุณสำหรับความเฉื่อยชาเปรียบเทียบทั้งหมดนั้นมีความยืดหยุ่นมากกว่าในด้านอื่นๆ มาก ซีพียู อย่างไรก็ตาม มันเป็นกระบวนการที่ตรงไปตรงมา
การแปลงทำได้โดยใช้ a เลขฐานสองเสริมสองตัว twoซึ่งต้องการให้โปรแกรมเมอร์สั่งให้คอมพิวเตอร์ตีความเลขฐานสองที่ขึ้นต้นด้วย 1 เป็นค่าลบ โปรแกรมแล้ว สร้างจำนวนบวกที่สอดคล้องกันในไบนารี ใช้ส่วนประกอบและบวกหนึ่ง
ตัวอย่างเช่น เมื่อกำหนดหมายเลข −47 คอมพิวเตอร์จะสร้างเลขฐานสองสำหรับ +47:
0001 1111
ส่วนเติมเต็มของสิ่งนี้คือ:
1110 0000
การเพิ่มสิ่งนี้จะช่วยให้:
1110 0001
โปรดทราบว่าคอมพิวเตอร์ได้ "ลงนาม" ตัวเลขเหล่านี้เพื่อถือว่าเลขนำหน้า 1 เป็นค่าลบ และประมวลผลผลลัพธ์ที่ต่างไปจากการบวกยกกำลังของ 2 ที่มีสัญลักษณ์ 1