1. الكود الأصلي
يتم استخدام البت الأعلى كبت الإشارة (يمثل 0 موجبًا، ويمثل 1 سالبًا)، وتمثل البتات المتبقية القيمة المطلقة للقيمة نفسها (معبرًا عنها بالثنائي).
للتبسيط، نستخدم بايت واحد لتمثيل عدد صحيح.
الرمز الأصلي لـ +7 هو: 00000111
الرمز الأصلي لـ -7 هو: 10000111
2. رمز عكسي
إذا كان الرقم موجبًا، فإن مكمله هو نفس الكود الأصلي؛ إذا كان الرقم سالبًا، فإن بت الإشارة هو 1، والبتات المتبقية هي عكس الكود الأصلي.
للتبسيط، نستخدم بايت واحد لتمثيل عدد صحيح:
تكملة +7 هي: 00000111
مكمل -7 هو: 11111000
3. تكملة التعليمات البرمجية
الكود المكمل: إذا كان الرقم موجبًا، فإن الكود الأصلي والرمز المكمل والمكمل هو نفسه إذا كان الرقم سالبًا، فإن بت الإشارة هو 1، والبتات المتبقية هي عكس الكود الأصلي، ثم الكود المكمل بالكامل؛ يتم إضافة الرقم بواسطة 1. للتبسيط، نستخدم بايت واحد لتمثيل عدد صحيح:
تكملة +7 هي: 00000111
تكملة -7 هي: 11111001
بالنظر إلى تكملة الرقم السالب، قم بتحويله إلى رقم عشري.
1. أولاً، سأناقضك؛
2. تحويله إلى رقم عشري.
3. أضف علامة السالب واطرح 1.
على سبيل المثال:
11111010، أعلى بت هو 1، وهو رقم سالب. قم أولاً بإلغاء كل بت للحصول على 00000101، وتحويله إلى رقم عشري للحصول على 5، وإضافة إشارة سالبة للحصول على -5، ثم اطرح 1 للحصول على -6.
لماذا يكون رقمًا سالبًا عندما أقوم بإدخال int a=232; ؟ ؟