يكاد يكون من المؤكد أنك سمعت عن الأرقام السالبة. إذا كان لديك القليل من التعرض لعالم علوم الكمبيوتر وبرمجة الكمبيوتر ، فإن مفهوم الأرقام الثنائية ليس غريبًا تمامًا. ولكن ما لم تكن قد استكشفت عالم البرمجة شخصيًا ، فمن المحتمل أنك لم تعمل بشكل جوهري مع الأرقام الثنائية.
نظرًا لأن أجهزة الكمبيوتر لا يمكنها "التفكير" أو "اتخاذ القرار" من تلقاء نفسها ولكن يمكنها اتباع التعليمات المطلوبة بدقة لا تفشل ، فقد جاء علماء الرياضيات منذ فترة طويلة حتى مع طريقة لأجهزة الكمبيوتر (أو البشر المريضين بشكل كافٍ) للقيام بعمليات الجمع والطرح والعمليات الحسابية الأخرى باستخدام الأرقام 0 و 1.
لكن هل هناك طريقة لدمج هاتين الفكرتين لإنتاج أرقام سالبة؟ هل الأمر بسيط مثل إخبار الآلة بلصق شريط أفقي صغير أمام رقم موجود على شكل قلم وورقة ، أم أن عامل "البت والبايت" يجعل الأمور أكثر تعقيدًا؟
ما هي الأعداد الثنائية؟
تمتلك أجهزة الكمبيوتر قدرًا هائلاً من قوة المعالجة ، وحتى جهاز clunker القديم يمكنه إجراء عمليات حسابية بمعدل قد يبدو غير مفهوم حتى لأكثر البشر موهبة حسابيًا. لكنهم ليسوا عقولًا ، والطريقة الوحيدة لحملهم على التعامل مع المعلومات المعقدة هي إبعاد كل شيء ممكن إلى حالة من حالتين ، على سبيل المثال ، ON أو OFF.
في "computer-ese" ، يُشار إلى 0 أو 1 على أنه a قليلا. مجموعات من هؤلاء تشمل نيبل (4 بتات) المشهورة بايت (8) ، و كلمة (1) و كلمة طويلة (32).
الأرقام العشرية التي تراها عادةً ، مثل 492 و 35 ، هي "الأساس 10" ، لأنها تتضمن 10 رموز تقدمية (الأرقام من 0 إلى 9) التي "يتدحرج" إلى المكان التالي إلى اليسار - "قوة 10." التالية. بدلاً من ذلك ، تتضمن الأرقام الثنائية رمزين فقط (الرقمان 0 و 1) وهما "القاعدة 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.
تحويل الأعداد السالبة إلى ثنائي
من المحتمل أن تكون كيفية تحويل رقم عشري سالب إلى رقم ثنائي مختلفة تمامًا عن التحويلات الرقمية الأخرى لقد قمت بأداء لأن عقلك ، على الرغم من كل كسله المقارن ، أكثر مرونة بكثير في معظم النواحي من أي شيء آخر وحدة المعالجة المركزية. ومع ذلك ، فهي عملية مباشرة.
يتم التحويل باستخدام ملف ثنائي مكمل ثنائي، الأمر الذي يتطلب من المبرمج توجيه الكمبيوتر لتفسير أي رقم ثنائي يبدأ بـ 1 على أنه سلبي. البرنامج بعد ذلك يبني الرقم الموجب المقابل في ثنائي ، ويأخذ مكمله ويضيف واحدًا.
على سبيل المثال ، بالنظر إلى الرقم −47 ، سيُنشئ الكمبيوتر الرقم الثنائي لـ +47:
0001 1111
ويكمل هذا:
1110 0000
إضافة واحد إلى هذا يعطي:
1110 0001
لاحظ أن الكمبيوتر قد "وقّع" على هذه الأرقام لمعاملة البادئة 1 على أنها سلبية ومعالجة النتائج بشكل مختلف عن مجرد إضافة قوى 2 التي يشغلها الرمز 1.