Module: التحولات الثنائية (C ++)


Problem

1/4

تحديد علامة الرقم

Theory Click to read/hide

عمليات البت يتم تخزين جميع الأرقام في ذاكرة الكمبيوتر في شكل ثنائي ، أي كسلسلة من 0 و 1. على & nbsp ؛ لتخزين الأرقام في ذاكرة الكمبيوتر ، يتم استخدام عدد محدود من البتات. بسبب هذا الرقم ، يكون للكمبيوتر نطاق محدود ، وقد تكون نتائج الحساب غير دقيقة. & nbsp ؛ يمكن تخزين عدد صحيح في ذاكرة 8 أو 16 أو 32 أو 64 بت. كل بت إضافي يوسع نطاق القيم الممكنة بمقدار 2. & nbsp ؛
يتم تنفيذ العمليات ذات الأرقام الموجبة والسالبة في المعالج باستخدام نفس الخوارزميات.

بمساعدة العمليات المنطقية للبت ، يمكنك التحكم في البتات الفردية لسجلات المعالج والأجهزة الخارجية. & nbsp ؛
نبسب ؛ <الجسم>
عملية C ++ الوجهة
أ & amp؛ ب Bitwise و لـ a و b
أ | ب Bitwise OR لـ a و b
a ^ b X & nbsp؛ أو لـ a و b
~ a انعكاس البت لـ a
أ & lt؛ & lt؛ ب انقل طريقة البت إلى اليسار من a إلى b
a & gt؛ & gt؛ ب إزاحة لليمين على مستوى البت لـ a إلى b




عملية AND
باستخدام العملية " AND " يمكنك إعادة تعيين (ضبط على الصفر) بت التي يكون القناع فيها 0! & nbsp؛
نبسب ؛
Mask & ndash؛ ثابت يحدد نطاق العملية المنطقية على بتات عدد متعدد البتات.
D - البيانات ، M - القناع

نبسب ؛

عملية OR
يمكن استخدام العملية " OR " لكتابة 1 إلى البتات التي يكون القناع فيها 1!

نبسب ؛

عملية حصرية & nbsp؛ OR
باستخدام عملية " XOR " يمكنك عكس البتات التي يكون القناع فيها 1!


نبسب ؛

التحول لليسار البتة المنطقية (على مستوى البت) & nbsp؛ إزاحة لليسار بمقدار 1 تضاعف عددًا صحيحًا موجبًا.

نبسب ؛

التحول لليمين منطقي (أحادي المعامل). انقل يمينًا بمقدار 1 & nbsp؛ يقسم عددًا صحيحًا موجبًا على 2.


نظرًا لأن التحول الأيمن يضبط بت الإشارة على المواقع الشاغرة ، يمكن تحديد علامة x عن طريق التغيير الصحيح لطول المتغير بالكامل.

Problem

دع الرقم x يعطى. & nbsp؛ حدد علامة الرقم.

أضف الجزء المفقود من الكود إلى البرنامج.
نبسب ؛
أمثلة <الجسم>
# إدخال الإخراج
1 10 1
2 -10 -1
3 0 0