الجمع في نظام الأرقام الثنائية. رموز للأمام والإضافية والعكسية

عند النظر في العمليات الحسابية الأولية على أرقام ثنائيةلقد تطرقنا بالفعل إلى موضوع الأرقام الثنائية السالبة. الآن دعونا ننظر إليها بمزيد من التفصيل.

لتشفير إشارة رقم ثنائي، استخدم العلامة البادئة (" مبدع") رقم (الصفر يشير إلى علامة زائد، وواحد إلى علامة ناقص).

يسمى هذا الشكل من تمثيل الرقم رمز مباشر.

في أجهزة الكمبيوتر، يتم استخدام الكود المباشر فقط لتمثيل الأرقام الثنائية الموجبة. لتمثيل الأرقام السالبة، يتم استخدام الكود المكمل أو العكسي، لأنه من غير المناسب إجراء عمليات حسابية على الأرقام السالبة في الكود المباشر.

قواعد تكوين الرموز التكميلية والعكسية هي كما يلي:

    لتشكيل رمز إضافي لرقم سالب، من الضروري وضع واحد في بت الإشارة، وعكس جميع البتات الرقمية (استبدل 1 بـ 0، و0 بـ 1)، ثم أضف 1 إلى البتة الأقل أهمية؛

    لتكوين رمز عكسي لرقم سالب، من الضروري وضع واحد في رقم الإشارة، وعكس جميع الأرقام الرقمية؛

    خلال هذه التحولات عليك أن تأخذ في الاعتبار الحجم شبكة بت.

يمكن الحصول على الكود المباشر من الكودين التكميلي والعكسي باستخدام نفس القواعد التي تستخدم للعثور على الكودين التكميلي والعكسي.

يوضح الجدول 2.1 الأعداد العشرية وتمثيلاتها الثنائية في ثلاثة أشكال مختلفة. الشيء المثير للاهتمام فيها هو هذا. إذا بدأت العد من الرقم 1000 (–8) وانتقلت إلى أسفل الأعمدة، فسيتم الحصول على كل رقم لاحق في الكود التكميلي بإضافة رقم إلى الرقم السابق دون مراعاة النقل إلى ما بعد الرقم الرابع، ولا يمكن إجراء هذه العملية يتم تنفيذها بسهولة في الرموز المباشرة والعكسية. كانت ميزة الكود الإضافي هذه هي سبب استخدامها التفضيلي في أجهزة الكمبيوتر الصغيرة والصغيرة الحديثة.

لذلك، تتم إضافة الأرقام المقدمة في الكود المكمل لاثنين وفقًا لقواعد الإضافة الثنائية، ولكن دون الأخذ في الاعتبار أي عمليات نقل تتجاوز الرقم الأكثر أهمية. دعونا نلقي نظرة على هذا باستخدام الأمثلة 2.1.

الجدول 2.1 إلى الأمام، عكس و رمز إضافيس

عدد عشري

خلف

إضافي

مثال 2.1 إضافة ثنائية في تكملة اثنين

ميزة أخرى للكود التكميلي هي أن الصفر، على عكس الرموز المباشرة والعكسية، يتم تمثيله برمز واحد. إن وجود 0 في بت الإشارة عند تمثيل الصفر يحدده كقيمة موجبة، وهو ما يتوافق مع نظرية الأعداد الرياضية والاصطلاحات المعتمدة في جميع لغات البرمجة.

ويترتب على الأمثلة المذكورة أعلاه أن الأرقام الموجبة في الرموز المباشرة والعكسية والمكملة هي نفسها. في الكود الأمامي والخلفي، يكون للصفر تمثيلان - الصفر "الإيجابي" والصفر "السلبي".

لاحظ أنه في تمثيل النقطة العائمة، يتم ترميز الجزء العشري وأس الرقم بشكل منفصل. في هذه الحالة، من الممكن تمثيل الأجزاء العشرية وترتيب الأرقام بنفس الرموز أو برموز مختلفة. على سبيل المثال، يمكن تمثيل ترتيب الأرقام بطريقة مباشرة، والأجزاء العشرية في تكملة الرقمين، وما إلى ذلك.

وبالتالي، باستخدام الرموز العكسية والتكاملية، يمكن اختزال عملية الجمع الجبري إلى الجمع الحسابي لرموز الأعداد، وهو ما ينطبق أيضًا على أرقام العلامات، والتي تعتبر بمثابة أرقام الجزء الصحيح من الرقم.

عند إضافة أرقام أقل من واحد، ينتج الجهاز أرقامًا قيمتها المطلقة أكبر من واحد. ويستخدمون للكشف عن تجاوز سعة شبكة البتات في جهاز الكمبيوتر تم تعديل الرموز الأمامية والعكسية والإضافية. في هذه الرموز، يتم ترميز الإشارة برقمين، حيث تتوافق علامة الجمع مع المجموعة 00، وعلامة الطرح المقابلة للمجموعة 11.

قواعد الإضافة للرموز المعدلة هي نفسها بالنسبة للرموز العادية. يتم تجاهل وحدة الحمل من بتة الإشارة الأكثر أهمية في الكود التكميلي المعدل، وفي الكود العكسي المعدل يتم نقلها إلى البتة الرقمية الأقل أهمية.

علامة الفائض هي ظهور 01 في رقم علامة مجموع المجموعة عند إضافة أرقام موجبة ( الفائض الإيجابي) أو 10 عند إضافة أرقام سالبة ( الفائض السلبي).

يحتوي الرقم الأكثر أهمية في هذه الحالات على القيمة الحقيقية لعلامة المجموع، والرقم الأقل أهمية هو الرقم الأكثر أهمية في الرقم. لتصحيح التجاوز، يجب إزاحة الرقم في شبكة البت بمقدار رقم واحد إلى اليمين، ويجب وضع رقم يساوي القيمة الجديدة لبت الإشارة السفلية في بت الإشارة الأكثر أهمية الذي تم تحريره. بعد تصحيح الفائض من العشري الناتج، تحتاج إلى زيادة ترتيب النتيجة بمقدار واحد. طلب منا المستخدم Evgeniy القيام بذلك.

بعد ذلك تأتي الآلة الحاسبة التي تحول العدد الصحيح الموجب أو السالب الذي تم إدخاله إلى الكود الثنائيويعرض أيضًا الرمز العكسي لهذا الرقم ومكمله. تحت الآلة الحاسبة، كالعادة، هناك القليل من النظرية.

تحديث: يتضح من التعليقات أن الناس لا يفهمون تمامًا ما تفعله هذه الآلة الحاسبة. وبتعبير أدق، ما فعله هو تطبيق خوارزمية لحساب الكود التكميلي لأي رقم. يريد الناس أن يُظهر لهم فقط الرمز الإضافي للرقم. حسنًا - الآن عند إدخال رقم موجب، تعرض الآلة الحاسبة تمثيل الرقم الموجود شكل ثنائي، لأنه لا يوجد له كود عكسي أو إضافي، ولكن عند إدخال سالب يظهر الكود الإضافي والعكسي.

هكذا النظرية

الكود المباشرالأرقام هي تمثيل لرقم ثنائي غير موقع. إذا كنا نتحدث عن حساب الآلة، كقاعدة عامة، يتم تخصيص عدد محدود معين من الأرقام لتمثيل الرقم. نطاق الأرقام التي يمكن تمثيلها بعدد الأرقام n يساوي

رمز الإرجاعأرقام، أو تكملة المرء (تكملة المرء) هو انعكاس للكود المباشر (وهذا هو سبب تسميته أيضًا رمز معكوس). أي أنه يتم استبدال جميع الأصفار بالآحاد والأصفار بالأصفار.

رمز إضافيأرقام، أو متمم ثنائي (متمم ثنائي) هو رمز عكسي يضاف إليه رقم أقل أهمية

والآن "لماذا، لماذا كل هذا؟" ©

وهذا كله من أجل العمل المريح مع اللافتات. وبما أنني أحب أن أفهم كل شيء بالأمثلة، سأخبرك أيضًا بالأمثلة. لذلك، لنفترض أن لدينا 4 بتات للعمل مع الأرقام الثنائية. يمكنك تمثيل 16 رقمًا بهذه الطريقة - 0، 1، ... 15
00 - 0000
...
15 - 1111

ولكن إذا لم تكن هناك علامة، فإن الحساب يتبين أنه ضعيف. تحتاج إلى إدخال علامة. من أجل عدم الإساءة إلى أي شخص، سنعطي نصف النطاق للأرقام الإيجابية (8 أرقام)، نصف السلبي (أيضا 8 أرقام). نحن نصنف الصفر، الذي يميز الحساب الآلي عن الحساب العادي، كأرقام موجبة (في الحساب العادي، الصفر ليس له علامة، إذا لم أكن مخطئا). في المجمل، تتضمن الأرقام الموجبة 0،...،7، والأرقام السالبة -1،...، -8.

للتمييز بين الأرقام الموجبة والسالبة، يتم تمييز الرقم الأكثر أهمية من الرقم، وهو ما يسمى مبدع (بت التوقيع)
0 في هذا الرقم يخبرنا أنه رقم موجب، و1 - سالب.

مع أرقام إيجابيةكل شيء يبدو واضحًا، يمكنك استخدام الكود المباشر لتمثيلهم
0 - 0000
1 - 0001
7 - 0111

كيف تتخيل أرقام سلبية?

لتمثيلهم يتم استخدام رمز إضافي.
أي أن -7 في الكود الإضافي يظهر هكذا
الرمز المباشر 7 = 0111
رمز الإرجاع 7 = 1000
الكود الإضافي 7 = 1001

يرجى ملاحظة أن الرمز المباشر 1001 يمثل الرقم 9، وهو بالضبط 16 بعيدا عن الرقم -7، أو .
أو، وهو نفس الشيء، الكود الإضافي للرقم "يكمل" الكود المباشر لـ ، أي. 7+9=16

وتبين أن هذا مناسب جدًا للحسابات الآلية - مع هذا التمثيل للرقم السلبي، يمكن تنفيذ عمليات الجمع والطرح باستخدام دائرة إضافة واحدة، ومن السهل جدًا تحديد تجاوز النتيجة (عندما لا يكون هناك ما يكفي عمق البت لتمثيل الرقم الناتج)

بضعة أمثلة
7-3=4
0111 الكود المباشر 7
1101 كود إضافي 3
0100 نتيجة الإضافة 4

1+7=6
1111 كود إضافي 1
0111 الكود المباشر 7
0110 نتيجة الإضافة 6

أما بالنسبة للفائض، فيتم تحديده بواسطة آخر حملين، بما في ذلك الحمل إلى ما بعد البت الأكثر أهمية. علاوة على ذلك، إذا كانت التحويلات 11 أو 00، فلم يكن هناك تجاوز، ولكن إذا كانت 01 أو 10، فقد حدث ذلك. في هذه الحالة، إذا لم يكن هناك تجاوز، فيمكن تجاهل التجاوز.

أمثلة حيث يتم عرض الواصلات والرقم الخامس

00111 الكود المباشر 7
00001 الكود المباشر 1
01110 تحويلات
01000 النتيجة 8 - الفائض

آخر تحويلين 01 - الفائض

7+7=0
00111 الكود المباشر 7
01001 كود إضافي 7
11110 تحويلات
10000 النتيجة هي 16 - ولكن يمكن تجاهل الرقم الخامس، والنتيجة الحقيقية هي 0

يحمل الرقمان الأخيران 11 ويمكن التخلص من الرقم الخامس؛ والنتيجة المتبقية، صفر، صحيحة حسابيًا.
مرة أخرى، يمكنك التحقق من الفائض باستخدام أبسط عملية XOR لبتتي حمل.

بفضل هذه الخصائص المريحة، تعد التعليمات البرمجية التكميلية هي الطريقة الأكثر شيوعًا لتمثيل الأرقام السالبة في حساب الآلة.

ملاحظة. حسنًا، الكود العكسي يكمل رقمًا لـ أو لجميع أرقام 1، ولهذا السبب يطلق عليه مكمل 1. يمكنهم أيضًا تمثيل الأرقام السالبة وتنفيذ الطرح والجمع باستخدام دائرة الجمع، فقط الإضافة أكثر صعوبة - مع حمل دوري، ويمكنك تمثيل أقل برقم واحد، نظرًا لأن جميع الوحدات مشغولة بالفعل - وهذا هو الرمز العكسي للصفر، وهو نوع من "ناقص صفر"، أي أنه يتم الحصول على النطاق إذا أخذنا مثالنا من - من 7 إلى 7. ليس مريحًا جدًا، بكلمة واحدة.

طلب منا المستخدم Evgeniy إجراء ترجمة من الرموز المباشرة إلى الرموز الإضافية أو العكسية.

بعد ذلك، تأتي الآلة الحاسبة التي تحول العدد الصحيح الموجب أو السالب الذي تم إدخاله إلى رمز ثنائي، وتعرض أيضًا الرمز العكسي لهذا الرقم والرمز المكمل له. تحت الآلة الحاسبة، كالعادة، هناك القليل من النظرية.

تحديث: يتضح من التعليقات أن الناس لا يفهمون تمامًا ما تفعله هذه الآلة الحاسبة. وبتعبير أدق، ما فعله هو تطبيق خوارزمية لحساب الكود التكميلي لأي رقم. يريد الناس أن يُظهر لهم فقط الرمز الإضافي للرقم. حسنًا، جيد - الآن عند إدخال رقم موجب تظهر الآلة الحاسبة تمثيل الرقم بالشكل الثنائي، لأنه لا يوجد رمز عكسي ومكمل له، وعند إدخال رقم سالب يظهر الرمز الإضافي والمعكوس .

هكذا النظرية

الكود المباشرالأرقام هي تمثيل لرقم ثنائي غير موقع. إذا كنا نتحدث عن حساب الآلة، كقاعدة عامة، يتم تخصيص عدد محدود معين من الأرقام لتمثيل الرقم. نطاق الأرقام التي يمكن تمثيلها بعدد الأرقام n يساوي

رمز الإرجاعأرقام، أو تكملة المرء (تكملة المرء) هو انعكاس للكود المباشر (وهذا هو سبب تسميته أيضًا رمز معكوس). أي أنه يتم استبدال جميع الأصفار بالآحاد والأصفار بالأصفار.

رمز إضافيأرقام، أو متمم ثنائي (متمم ثنائي) هو رمز عكسي يضاف إليه رقم أقل أهمية

والآن "لماذا، لماذا كل هذا؟" ©

وهذا كله من أجل العمل المريح مع اللافتات. وبما أنني أحب أن أفهم كل شيء بالأمثلة، سأخبرك أيضًا بالأمثلة. لذلك، لنفترض أن لدينا 4 بتات للعمل مع الأرقام الثنائية. يمكنك تمثيل 16 رقمًا بهذه الطريقة - 0، 1، ... 15
00 - 0000
...
15 - 1111

ولكن إذا لم تكن هناك علامة، فإن الحساب يتبين أنه ضعيف. تحتاج إلى إدخال علامة. من أجل عدم الإساءة إلى أي شخص، سنعطي نصف النطاق للأرقام الإيجابية (8 أرقام)، نصف السلبي (أيضا 8 أرقام). نحن نصنف الصفر، الذي يميز الحساب الآلي عن الحساب العادي، كأرقام موجبة (في الحساب العادي، الصفر ليس له علامة، إذا لم أكن مخطئا). في المجمل، تتضمن الأرقام الموجبة 0،...،7، والأرقام السالبة -1،...، -8.

للتمييز بين الأرقام الموجبة والسالبة، يتم تمييز الرقم الأكثر أهمية من الرقم، وهو ما يسمى مبدع (بت التوقيع)
0 في هذا الرقم يخبرنا أنه رقم موجب، و1 - سالب.

يبدو كل شيء واضحًا مع الأرقام الموجبة، ويمكنك استخدام الكود المباشر لتمثيلها
0 - 0000
1 - 0001
7 - 0111

كيفية تمثيل الأرقام السالبة؟

لتمثيلهم يتم استخدام رمز إضافي.
أي أن -7 في الكود الإضافي يظهر هكذا
الرمز المباشر 7 = 0111
رمز الإرجاع 7 = 1000
الكود الإضافي 7 = 1001

يرجى ملاحظة أن الرمز المباشر 1001 يمثل الرقم 9، وهو بالضبط 16 بعيدا عن الرقم -7، أو .
أو، وهو نفس الشيء، الكود الإضافي للرقم "يكمل" الكود المباشر لـ ، أي. 7+9=16

وتبين أن هذا مناسب جدًا للحسابات الآلية - مع هذا التمثيل للرقم السلبي، يمكن تنفيذ عمليات الجمع والطرح باستخدام دائرة إضافة واحدة، ومن السهل جدًا تحديد تجاوز النتيجة (عندما لا يكون هناك ما يكفي عمق البت لتمثيل الرقم الناتج)

بضعة أمثلة
7-3=4
0111 الكود المباشر 7
1101 كود إضافي 3
0100 نتيجة الإضافة 4

1+7=6
1111 كود إضافي 1
0111 الكود المباشر 7
0110 نتيجة الإضافة 6

أما بالنسبة للفائض، فيتم تحديده بواسطة آخر حملين، بما في ذلك الحمل إلى ما بعد البت الأكثر أهمية. علاوة على ذلك، إذا كانت التحويلات 11 أو 00، فلم يكن هناك تجاوز، ولكن إذا كانت 01 أو 10، فقد حدث ذلك. في هذه الحالة، إذا لم يكن هناك تجاوز، فيمكن تجاهل التجاوز.

أمثلة حيث يتم عرض الواصلات والرقم الخامس

00111 الكود المباشر 7
00001 الكود المباشر 1
01110 تحويلات
01000 النتيجة 8 - الفائض

آخر تحويلين 01 - الفائض

7+7=0
00111 الكود المباشر 7
01001 كود إضافي 7
11110 تحويلات
10000 النتيجة هي 16 - ولكن يمكن تجاهل الرقم الخامس، والنتيجة الحقيقية هي 0

يحمل الرقمان الأخيران 11 ويمكن التخلص من الرقم الخامس؛ والنتيجة المتبقية، صفر، صحيحة حسابيًا.
مرة أخرى، يمكنك التحقق من الفائض باستخدام أبسط عملية XOR لبتتي حمل.

بفضل هذه الخصائص المريحة، تعد التعليمات البرمجية التكميلية هي الطريقة الأكثر شيوعًا لتمثيل الأرقام السالبة في حساب الآلة.

ملاحظة. حسنًا، الكود العكسي يكمل رقمًا لـ أو لجميع أرقام 1، ولهذا السبب يطلق عليه مكمل 1. يمكنهم أيضًا تمثيل الأرقام السالبة وتنفيذ الطرح والجمع باستخدام دائرة الجمع، فقط الإضافة أكثر صعوبة - مع حمل دوري، ويمكنك تمثيل أقل برقم واحد، نظرًا لأن جميع الوحدات مشغولة بالفعل - وهذا هو الرمز العكسي للصفر، وهو نوع من "ناقص صفر"، أي أنه يتم الحصول على النطاق إذا أخذنا مثالنا من - من 7 إلى 7. ليس مريحًا جدًا، بكلمة واحدة.



glvpom.ru - المحطات الفرعية. إلكترونيات الطاقة. علم البيئة. الهندسة الكهربائية