أهلا ومرحبا. دعنا نتحدث عن معاملات البت.
لقد أظهرنا لك لمحة صغيرة عن هذا في المحاضرة السابقة عندما تحدثنا عن مشغلي المهام
لأن مشغلي المهام لديهم كل هذه التعيينات المركبة حيث يمكنك
إجراء عملية مثل الإضافة ثم التعيين أيضًا.
يمكنك عمل نفس الأشياء باستخدام عوامل تشغيل النوع هذه.
لكن دعنا ندخل في مزيد من التفاصيل ونخبرك بالضبط ما هي.
لذا فإن c تقدم عوامل منطقية على مستوى
البت وعوامل تحويل. قد تكون هذه المصطلحات جاهلة تمامًا.
إنها تبدو كعوامل منطقية ، لكنها مختلفة تمامًا. لا يقومون بأي نوع من التقييمات
المنطقية. إنهم لا يقيّمون الصواب أو الخطأ.
تبدو مثل علامة العطف ، 2 أمثال ، لكنهم لا يقومون
بأي نوع من التقييم المنطقي.
ما يفعلونه هو أنهم يعملون على وحدات بت ، داخل قيم عدد صحيح.
ولذا قد تسأل نفسك لماذا تريد أن تفعل هذا؟ حسنًا ، لا يتم استخدامه
في معظم البرامج. إنها أكثر من تقنية متقدمة.
على الرغم من أن هذه فئة المبتدئين. هم جزء من المشغلين ، والمشغلين مفهوم مبتدئ.
لذا سأخاطبهم ، لكننا لن نركز عليهم بالضرورة.
سأعطيكم بعض الأمثلة ، وأريكم كيف يمكنكم استخدامها.
لكنك لن تكون خبيرًا في هذا بعد هذه المحاضرة.
لكن الطريقة التي تكون مفيدة بها ولماذا تريد استخدامها حقًا هي أنه يمكنك
تخزين قدر كبير من البيانات.
إذن ، هناك معاملات أحادية تسمى و ، علامة العطف والبت ، أو التي
هي أو مجرد شريط متوازي واحد.
حاول ألا تخلط بينها مرة أخرى مع العوامل المنطقية.
العوامل المنطقية لها 2 منهم ، علامة العطف ، والتي هي و.
المشغلين أحاديي المعامل لديهم واحد فقط. لذلك مجرد علامة أو مجرد علامة أو.
ولذا فإن ما سيفعلونه هو أنهم سيختبرون وسيضعون بتات فردية
داخل متغير عدد صحيح. ما هو قليلا؟
نحن نعلم أن القليل هو وسيلة لقياس البيانات.
لكن القليل هو في الأساس قيمة 0 أو 1.
و 8 من هؤلاء يشكلون بايت. لذا فإن القليل هو 0 أو 1.
وما يمكنك القيام به هو عدد صحيح ، تذكر ، اعتمادًا
على النظام الذي تقوم بتشغيله ، يمكن أن يكون 8 بايت.
وهكذا يمكنك تشغيل وإيقاف كل بت.
وعندما أقول تشغيل أو إيقاف تشغيل ، أقول أنه يمكنك إما جعلها تساوي 1 أو 0.
وبعد ذلك يمكنك استخدام هذه الأجزاء لإخبارك بشيء.
لذلك يمكنك تخزين الكثير من البيانات من خلال جعل البتات تمثل نوعًا من البيانات.
هذا هو السبب في أن أحد أسباب استخدام الكمبيوتر
للبت في 1 و 0 والأرقام الثنائية للقيام بعمليات لأنه يمكنك تخزين الكثير من
البيانات. الآن بالضبط
ما يعنيه هذا هو هنا مثال. يمكنك استخدام متغير عدد صحيح واحد.
مرة أخرى ، العدد الصحيح هو رقم ، ويمثل العدد الصحيح من 4 إلى 8 بايت
اعتمادًا على النظام الذي تقوم بتشغيله.
هذا يعني أنه إذا كان هناك 4 بايت ، فهذا يعني أن هناك 32 بت.
هناك 32 0 أو 1 قيمة.
لذا يمكنك استخدام كل هذه البتات لتمثيل شيء ما.
على سبيل المثال ، إذا كنت ترغب في تخزين شخصيات فردية لشخص ما ،
فيمكنك فقط أن تخبرك ما إذا كان الشخص ذكرًا
أم أنثى أم لا بالقول إن 1 يساوي ذكرًا ، 0 يساوي أنثى.
يمكنك إما تشغيله أو إيقاف تشغيله.
ثم يمكنك استخدام 3 بتات لتحديد ما إذا كان الشخص
يمكنه التحدث بالفرنسية أو الألمانية أو الإيطالية.
لذا فإن 1 بت يمكن أن يمثل الفرنسية. إذا لم يكن 1 0 ، فهذا يعني
أنهم لا يتحدثون الفرنسية.
إذا كانت اللغة الألمانية تساوي 0 ، فهذا يعني أنهم لا يتحدثون الألمانية.
إذا كانت 1 ، فهذا يعني أنهم يتحدثون الألمانية. لذلك من خلال إيقاف تشغيل هذه البتات ، وضبطها
من 1 إلى 0 ، يمكنك تمثيل الكثير من البيانات.
يمكن أن يكون لديك جزء آخر لتسجيل ما إذا كان راتب الشخص هو 50000 أو أكثر.
إذا كان الرقم 1 ، فهذا صحيح ، نعم ، هو كذلك. 0 خطأ.
لذلك حددنا هنا للتو.
تقول في الواقع 4 ، لكننا في الواقع حددنا 5 بتات من البيانات
، 5 فقط من بين ما إذا كان لدينا 32 بت أو إذا كان لدينا
64 بت ، لكننا استخدمنا 5 فقط ويمكننا تمثيل ما إذا كان
الشخص أنثى أم ذكرًا أم لا ، سواء كانوا يتحدثون الفرنسية أو الألمانية
أو الإيطالية أم لا ، أو كل 3 أو واحد أو آخر.
وسواء كانوا يكسبون أكثر من 50000 دولار أم لا.
يمكننا تمثيل كل تلك البيانات في بتاتنا.
وهذا هو المكان الذي تصبح فيه عوامل تشغيل الأحجام في متناول اليد.
الآن بعد أن عرفنا كيف يمكننا استخدام البتات لتخزين الكثير من البيانات
المختلفة. دعنا نتحدث عن تلك الأرقام الثنائية.
نحن نعلم أن الرقم الثنائي هو مجرد رقم يتضمن الآحاد والأصفار.
ولهذا السبب من المفيد استخدامها. معاملات البت في عدد صحيح ، يمكن أن
يكون الرقم بأي طول.
فيما يلي أمثلة على الأرقام الثنائية ، 0 و 1 فقط.
لقد رأيت هذا 0 1 0 1 0 1 1 0 1 0 1 0.
وتذكر أن البايت يساوي 8 بتات.
عادةً ما يكون العدد الصحيح 4 بايت في معظم الأنظمة الأساسية.
يعتمد ذلك على الهندسة المعمارية ، ولكن في الغالب 32 بت.
إذن ، لديك 32 قيمة يمكنك تخزينها باستخدام 1 و 0 للإشارة إلى تشغيل أو إيقاف.
الأرقام الثنائية ، مرة أخرى كل رقم ثنائي له قيمة عشرية مقابلة
، لذلك تحتاج إلى فهم كيفية تحويل ثنائي إلى عشري.
الأمثلة هنا 1 تساوي 1 ، 1 0 هي 2 ، 1 1 هي 3 ، هذه
تحويلات بسيطة.
مرة أخرى ، عادة ما يكون لديهم المزيد من البتات ، 1 0 1 0 1 1 1.
الطريقة التي تريد بها تحويل أرقام الثنائيات
إلى رقم عشري هي أنك تريد البحث عن
كل موضع في البايت مع البت المقابل ثم استخدام قوة 2.
لذلك ، لكل رقم ، تضرب الرقم في قيمة موضعه
باستخدام القوة 2. ثم تضيف المشروع بأكمله للحصول على النتيجة النهائية.
لذا فإن قيم الموضع والرقم الثنائي هي قوى 2.
لذا فإن الموضع الأول سيكون القيمة 2 0 ، والتي
، بعبارة أخرى ، ستكون 1.
ثم الموضع الثاني هو قيمة 2 مرفوعًا للقوة الأولى التي
تساوي 2 ، و 2 أس 2 ستكون 4 ، و 2 إلى 3 ستكون
8 ، و 2 أس 4 ستكون 16. وتستمر في فعل ذلك
مرارًا وتكرارًا. ومن ثم يسهل فهم ذلك إذا رأيت مثالًا لطيفًا.
إذن لدينا هنا عدد ثنائي هو 0 1 1 0 1 0 0 1.
المكافئ العشري لذلك هو 105.
الطريقة التي تقوم بها بالتحويل هي أن تبدأ من الجانب الأيمن
لكل بت وتضرب في أس 2 اعتمادًا على ما إذا كانت البتة تساوي 0 1.
لذلك إذا بدأنا على طول الطريق إلى اليمين ، لدينا 1.
لذلك نقول 1 ضرب 1 ونحتفظ بذلك 1. ثم 1 التالي ، الموضع
الثاني هو 0 ضرب 2 0. ثم 0 ضرب 4 ، 1 ضرب
8 ، 0 ضرب 16 ، 1 ضرب 32 ، 1 ضرب
64 ، 0 ضرب 28.
وتجمع كل هؤلاء وتحصل على النتيجة 105.
هذه طريقة واحدة للتحويل. يمكنك بالفعل تحويله من اليسار
إلى اليمين أيضًا عن طريق الضرب في 2 ثم إضافة 1 أو إضافة
0 اعتمادًا على البتة التالية. على سبيل المثال ، يمكنك
أيضًا إذا ذهبت من اليسار إلى اليمين
، تبدأ بالرقم 1 لأن 0 لا يهم.
إذن ، الجزء الثاني من اليسار إلى اليمين ، لديك 1.
البتة الثالثة ، لديك 1 ضرب 2 زائد
1 ، إذن لديك 3.
ومرة أخرى ، تضرب في 2 فتقول 3 ضرب 2 زائد 0 وهو ما يساوي 6.
6 ضرب 2 زائد 1 ، ما يساوي 13.
13 ضرب 2 يساوي 26.
26 في 2 يساوي 52 ضرب 2
، ما يساوي 104 زائد 1.
لذا اضرب مرة أخرى في 2 ثم أضف 1. مثال آخر ، مرة أخرى ، من اليمين
إلى اليسار عادة ما يكون أسهل قليلاً.
هذا 1 0 0 1 1 1 0 0.
وهذا يتحول إلى 156 لأنك تقول مرة أخرى
0 في 1 ، 0 في 2 ، 1 في 4 ، 1 في 8 ، 1 في 16 وهكذا
، ثم تجمعهم معًا ، وهو
4 8 12 16 28 زائد 128 يساوي 156 .
ومرة أخرى ، إذا انتقلت من اليسار إلى اليمين ، فستضرب في 2 أضف 1.
لذلك بدأنا بـ 1. لنفترض 1
2 4 9 ، 4 في 2 زائد 1
، 9 في 2 يساوي 18 زائد
1 يساوي 19 في 2 ، 38 زائد 1 يساوي
39 في 2 وهو ما يساوي 78 في 2 وهو
ما يساوي 156.
هذا عرض سريع لكيفية تحويل النظام الثنائي
إلى نظام عشري. الآن بتحويل الديسيبل إلى ثنائي
، عادةً ما أستخدم التحويل على الويب
فقط إذا كنت مهتمًا بذلك حقًا. ولكن يمكنك أخذ هذه الأرقام الثنائية ثم إجراء معاملات
أحاديات ، لذلك دعونا نلقي نظرة على معاملات البت.
لذلك تم تلخيص معاملات البت هنا. ومرة أخرى ، حصلت على جدول رائع آخر عبر الإنترنت
، لكنهم يشبهون العوامل المنطقية. لكن مرة أخرى ، لا تخلط بينهم.
لذا فإن علامة العطف في حد ذاتها عبارة عن ثنائي ومعامل.
ولذا فإن ما يفعله هذا هو أنه ينسخ قليلاً إلى النتيجة إذا
كانت موجودة في كلا المعاملين. لذلك إذا كان كلاهما صحيحًا ، فسيتم
نسخه قليلاً.
لذا إذا كانت a و b تساوي 12 ، فسيكون
لديك تمثيل ثنائي يساوي 0 0 0 0 1 1 0 0.
إذن أ و ب سيكونان
ذلك الرقم. سنستعرض بعض الأمثلة.
ثنائي أو ينسخ قليلاً إذا كان موجودًا في أي من المعاملين ، لذا فإن
a أو b سينسخ قليلاً إذا كان موجودًا
في أي من المعاملين. لذلك إذا كان أي من المعاملين
يساوي 1 ، فسيتم نسخه قليلاً.
ثم xor الثنائي ، هذا هو الحصري أو.
سيؤدي هذا إلى نسخ البت إذا تم تعيينه في معامل واحد ولكن ليس كلاهما.
لذلك إذا كان لديك صحيح ، ولكن واحد فقط صحيح
، وكنت تستخدم الجزرة لتمثيل هذا على لوحة المفاتيح
، فسيتم نسخها قليلاً وستقول أنها صحيحة ،
مكمل الآحاد
الثنائية.
مرة أخرى ، نحصل على البيانات الثنائية هنا لأننا نتحدث عن البتات. لذا نأمل أن يكون رقم
1 مكملًا.
المشغل أحادي وله تأثير قلب البتات
، في الأساس يقوم فقط بإلغاء وإخراج الشاشة.
إذاً على سبيل المثال هنا إذا قلت tilde a ، فأنت
تقوم بتطبيق عامل التشغيل المكمّل 1s.
وإذا كان يساوي سالب 61 ، فسيكون 1 1 0 0 0 0 1.
لذا ، إذا كنت ستقوم بتحويل هذا الرقم الثنائي
إلى رقم عشري ، فهذا رقم سالب والرقم الأول هو
العلامة. لذا 1 يخبرك أنها علامة.
ثم تقول 1 2 4 8 16 33 ثم 61
، هكذا ستمثلها.
لذا سأستعرض المزيد من الأمثلة الملموسة على هذا.
لكن في الأساس ، إذا كان لديك رقم ثنائي ، فإن a هو في البداية
رقم ثنائي يساوي 0 0 1 1 1 1 0 0 وهو 60 ، وقمت
بتقديم التقليب بشكل أساسي ، سيتحول
بعد ذلك إلى سالب 61 ، وهو 1 1 0 0 0 0 0 0 0 0 0 1 1.
إذن هذه هي نتائج المتغيرات التي تم تعيينها بالفعل. لذا مرة أخرى ، أفترض أن a
يحتوي على تمثيل ثنائي معين وأن b له تمثيل ثنائي معين.
إذن ، إذا كان a يساوي ، مرة أخرى ، 60
و b يساوي 13 ، فإن نتيجة جمعهما معًا بطريقة
بسيطة وستكون 0000 11 00 ، وهي 12.
مرة أخرى ، سأستعرض هذه الأمثلة ولكن هذا يحاول تقديم وصف
بسيط لهذه العوامل الثنائية المختلفة.
سيحول الرمز أقل من أصغر من البتات إلى اليسار.
لذلك يتم نقل قيمة المعامل الأيسر إلى اليسار بعدد البتات المحدد بواسطة المعامل الأبيض.
لذا ، إذا فعلت شيئًا مثل أقل
من 2 وكان a مساويًا
بالفعل لأنك تعرف عددًا ثنائيًا
، على سبيل المثال ، 0 0 1 1 1 1 0 0 ، فسوف تقوم بإزاحة البايت
بمقدار 2.
إذن ، ستزيل الأصفار وستصبح 1 1 1 1 ، وتلك الأصفار ستنتهي.
ونفس الشيء مع عامل النقل الصحيح. أنت تقوم فقط بنقلهم إلى اليمين مقابل اليسار.
هنا تستخدم رمز أكبر من.
ولذا سأمر على هذه في ثانية.
الشيء المهم الآخر الذي يجب فهمه مع عوامل تشغيل البت
هو كيفية تقييم قيمتي a و b. إذن ما قيمة 1
و 1 إلى 1 ، إذا كانت علامة
العطف. إذا كانت القيمة 1 أو 1 ، يتم
تقييمها إلى 1 أيضًا.
لكن 1 و 1 و 0 إذا كنت تستخدم علامة العطف تقوم
بعمل و ، وهذا يساوي 0 خطأ. لذلك أردت فقط تقديم جدول الحقيقة
الصغير هنا الذي يوضح لك القيم عند القيام
بذلك ، يمكنك استخدام و و أو حصري أو.
لذا إذا كان لديك p0 و q0 ، فهذا يعني أنهما خاطئان وقمت
بتطبيق و ، فسيكون خطأ لأن كلاهما
يجب أن يكون صحيحًا حتى يكون هذا صحيحًا.
وهذا ما تراه في الصف 3.
كلاهما صحيح ، ثم p و q سيقيمان بـ 1 ، صحيح.
إذا لم يكن كلاهما صحيحًا ، فسيكون دائمًا خطأ.
P أو q فقط 1 منهم يجب أن يكون صحيحًا.
لهذا السبب ترى الصفوف 1 والصفوف 2 يساوي 1 والصف 3 يساوي 1.
المرة الوحيدة التي يكون فيها الخطأ هو عندما يكون كلاهما خطأ.
وبعد ذلك يكون الحصري أو 1 على الأقل
صحيحًا ، و 1 فقط.
لذلك إذا كانت p خطأ و q صحيحة ، فسوف تعود صحيحة.
وإذا كان p صحيحًا و q خطأ ، فسيتم إرجاع 1.
يمنحك هذا فكرة عن كيفية تقييمها.
مرة أخرى ، الكثير من الأمور الرياضية ، ولكن عندما نتحدث عن الأرقام الثنائية ، فهذا ما نتحدث عنه.
لذلك دعونا نلقي نظرة على بعض الأمثلة الملموسة وكتل التعليمات البرمجية. نأمل أن يساعد هذا قليلاً.
إذن هذه هي وظيفتنا. سأقوم بإنشاء متغيرين آخرين.
سوف أتأكد من عدم توقيعهم على الرغم
من أن ذلك افتراضيًا. لذلك إذا قلت بدون إشارة int
a وقمت بتعيينه إلى 60 ، فسيتم تمثيل ذلك في صورة ثنائية
على النحو 0 0 1 1 ثم 11 00.
إذا قمت بإنشاء متغير آخر غير موقع وقلت:
int b وقمت بتعيين القيمة
13 ، فسيتم تمثيل ذلك بالفعل في صورة ثنائية
0 0 00 1 1 0 1. يمكنك القيام بالتحويلات هناك.
لكن ما أريد توضيحه هنا هو أنه عندما تقوم بضبط هذه الأرقام الثنائية
، يمكنك إيقاف تشغيل البتات باستخدام معاملات البت المختلفة.
والآن سأقوم بإنشاء نتيجة صحيحة ، وسأقول
إنها ستساوي 0.
سيحتفظ E بنتيجة العملية الأحادية.
عملية. الآن إذا قلت أن c يساوي a
وقمت بتطبيق المعامل أحادي البتات و a و b ، فما يجب
فعله الآن هو إذا كان a يساوي 1 و b يساوي 1 ، فسيتم تشغيل
هذه البتات. فماذا تتوقع نتيجة هذا v.
حسنًا ، تنظر إلى الجزء الأول من a وتنظر إلى الجزء الأول
من b وكلاهما 0.
لذا ستكون النتيجة 0 لأنك إذا قمت
بذلك بشكل صحيح في a و a b ، فيجب أن يكون كلاهما صحيحًا حتى يكون 1.
إذن ، سيكون الرقم التالي أيضًا صفرًا. التالي هو 1 و 0 ، البتة الثالثة.
لذلك لا يزال 0 و 1 و 0 لا يزال 0. ثم لدينا الآن 1 و 1.
حتى الآن لدينا أخيرًا صحيح. لدينا 1 و 1 آخر. لدينا حقيقة.
ثم 0 و 0 سيكونان 0 ثم 0 و 1 سيكونان
0.
لذا فإن النتيجة إذا حاولت طباعة c ، فستقوم بطباعة
القيمة بتنسيق عشري. إذا كنت سأفعل شيئًا من هذا القبيل
، فسيتم طباعة المكافئ العشري لذلك الرقم الثنائي ، والذي
سيكون مكافئًا لـ 0 0 0 0.
وهذا كله عبارة عن تحويل ثنائي إلى رقم عشري ، لذلك تحتاج إلى فهم
كيفية القيام بذلك لفهم هذا المثال. لكن 0 0 0 0 1 1 0 0 هي في
الواقع 1 3 7 ، والقيمة هي في الواقع
12 ، 1 3 6 12.
لذا فإن هذا سيطبع اثني عشر
إذا كنت سأطبع c أو
ستكون النتيجة أفضل.
لذا إذا قمت بتشغيل هذا ، فسترى أن القيمة هي 12.
لقد تم إيقاف تشغيله بالفعل وعلى جميع البتات بناءً على مقارنة علامة العطف.
الآن أقول تشغيل
، نرى أن القيمة في d12 لأنها متوقفة عن
التشغيل وعلى البتات وسيتم تمثيلها
بالفعل على أنها 0 0 0 1 1 0 0 وهي القيمة
12 لأننا نطبع عددًا عشريًا .
إذا كنت سأغير هذا وأريد الآن أن أفعل أو
وما زلت أفعل أو وأتذكر أن الشريط الموازي بجوار الإدخال
، سأقوم الآن بتشغيل
البتات فقط إذا كان أيًا من 1 حقيقي.
إذن
00 ، كلاهما خاطئ. مرة أخرى ، أقارن هنا.
أقارن هذه البتات بـ 16 و 13.
يتم تمثيل 16 في صورة ثنائية 0 0 1 1 1 1 0 0.
يتم تمثيل 13 في النظام الثنائي 0 0 0 0 1 1 0 يساوي 1.
كل واحد من هذه الأرقام يمثل قليلا.
إذن ، أول بت في 60 هو 0 ، أول بت في 13 يساوي 0.
وإذا طلبتهما معًا ، 0 و 0 ، فسأحصل على 0. إذن هذه هي النتيجة الأولى للبت الأول.
البتة الثانية 00 مرة أخرى. البتة الثالثة هي 1 مقابل
60 وهي 0 مقابل 13.
الآن كل هذا يعني أنه يجب أن يكون لدي 1 صحيحًا ، لذلك سيكون 1.
الشيء نفسه ينطبق على البت رقم 4 و 16 ، 13. حتى الآن لدي 1 مرة أخرى.
ثم 1 و 1 ، كلاهما صحيح. مرة أخرى 1 ، كل ما أحتاجه
هو 1 صحيح ، 1 آخر.
كلاهما خطأ لذا لن يكون هذا صحيحًا. 0 ، تذكر ليس صحيحًا
، 1 صحيح و 0 11. الآن لدي 0 0 1 1 1 1 0 1.
وقيمة ذلك بالقيمة العشرية إذا كنت سأطبعها
، مرة أخرى ، يجب أن تفهم كيفية تحويل النظام
الثنائي إلى نظام عشري ، لكنها في الأساس تصل
إلى 1 3 7 15 30 61. هذا سيطبع 61.
قم بإنهاء هذا البرنامج وإعادة
بنائه ، وسنرى القيمة 61.
إذن فهذه عوامل تشغيل أحاديات. ومرة أخرى ، إنه نوع من البرامج
الأكثر تقدمًا ، لكنه طريقة رائعة لتمثيل الكثير من
البيانات باستخدام علامة العطف وما إلى ذلك ، عن طريق تشغيل وإيقاف تشغيل
وحدات البت ، بشكل أساسي. حتى تتمكن من اللعب
مع هذا. هل يمكن أن تفعل الحصري أو ما هي الجزرة.
الجزرة فوق 6 رقم 6 على لوحة المفاتيح.
سترى نتيجة مختلفة. إذا كنت ستضيف التلدة ، فسيؤدي ذلك إلى إيقاف تشغيل كل شيء بشكل أساسي.
إذن ، بالنسبة لـ a و a يساوي 60 ، 0 0 1 1
1 1 0 0 ، فلن يساوي 1 1 0 0 0 0 1 1.
شيء آخر رائع حقًا يمكنك القيام به مع العوامل الثنائية هو التغيير
، والتحول إلى اليسار واليمين. هناك شيئان أساسيان تعرفهما عندما تحتاج
إلى التحول إلى اليسار أو اليمين.
بادئ ذي بدء ، نعلم أن int غير الموقعة تعني أنه يمكن
أن يكون موجبًا فقط. لا يمكن أن تكون سلبية.
لذلك إذا كنت تخزن قيمة سالبة هناك ، فسيحولها المترجم سيكون أطول ، وسيشغل حجمًا كبيرًا.
لذلك تذكر أن القيم غير الموقعة تعني أنه يمكنك فقط الحصول على قيم موجبة.
تعني الأعداد الصحيحة الموقعة أنها يمكن أن تكون سالبة أو موجبة.
ولكن إذا كنت تريد التحول ، فتذكر
من أجل التحول إلى اليسار ، لذلك إذا قلنا الآن أن النتيجة تساوي ودعنا
نقول أننا نريد إزاحة ، دعنا نقول ، بمقدار 2 ، فإن الشيء المهم الآخر الذي
تريد معرفته هو عندما يكون
لديك الأعداد الصحيحة ، الأعداد الصحيحة هي ، تذكر ، أنها
4 بايت على معظم الأنظمة الأساسية.
يعتمد
ذلك على أنه يمكنك الحصول على الحجم من خلال القيام بحجم المشغل. إذن فالعدد الصحيح
هو 4 هو 32 بت لذا فإن الرقم حقًا شيء
من هذا القبيل. الرقم 16 يشبه
ذلك 4 8 12 16 20 24.
لذلك ربما يكون لديك شيء من هذا القبيل وشيء من هذا القبيل.
هذا هو الرقم حقًا. لقد عرضت آخر 8 بتات فقط
لأن البقية كانت أصفارًا. ولكن إذا نظرت إلى هذا على
أنه عدد صحيح 32 بت ، وهو 4 بايت ، فهذا
ما يبدو عليه في النظام الثنائي ، 4 0s 4 0s 4
0s 4 0s 4 0s 4 0s ثم 0 0 1 1 1 1 0 0 .
ولذا عليك أن تعرف الحجم عندما تقوم بالتغيير إلى اليسار
أو اليمين لأنه إذا قمت بتغيير أكثر من 2 ، فلن يكون واضحًا.
لا تسقط أو أي شيء من هذا القبيل.
لذا اسمحوا لي مرة أخرى أن أتأكد من أن 48 12 16 20
24 28 32 ونفس الشيء ينطبق على 13.
لذلك إذا كنت ستنتقل إلى اليسار بمقدار أكبر
من 2 ، فإن ما ستحصل عليه في النهاية هو أن هذه الآحاد
ستنتقل إلى اليسار أيضًا. لذلك ستظل النتيجة هي
كل تلك الأصفار السابقة
، ولكن بعد ذلك سيكون لديك 1 1 1 1 0 0 0 0.
وهذا سيساوي 240.
وإذا أجريت تحويلًا سريعًا ، فأنا أقوم بذلك في رأسي
بالقول 1 3 7 15 30 60122 40 ، لكن يمكننا تأكيد
ذلك من خلال البناء والتشغيل وسترى أن النتيجة
هي 240.
ونلاحظ أن النتيجة هي 240.
لذا الآن ، إذا كنت تريد الانتقال فعليًا إلى أكثر من ثانيتين
، فقل أنك تريد التحول بمقدار 4 ، فهذا عندما يصبح من المهم أن تفهم أنه رقم 32 بت.
لذا هنا يجب أن تستخدم بعضًا من تلك الأصفار.
لذا ، إذا كنت تريد التحول بمقدار 4 حقًا ، فإن ما ستحصل عليه هو أنه سيكون
لديك شيء من هذا القبيل.
ثم إذا كنت تريد تجميعهم في
4 ، سيكون لديك شيء من
هذا القبيل. لذا فإن النتيجة
هنا ستكون مرة أخرى إذا قمت بذلك
في رأسي ، لديك 1 3 7 15 30 60120240480
ثم 960.
أتمنى أن أكون قد فعلت ذلك بشكل صحيح. مرة أخرى عندما نجري هذا ونقول
960 ، فهذا يتحول إلى
اليسار. إذا كنت تريد التحول
إلى اليمين ، فأنت تستخدم رمز أكبر من.
لذا ، بالانتقال إلى عامل النقل الأيمن الثنائي الأيمن
، فإنك تقوم بعمل أكبر من. عامل إزاحة ثنائي لليسار ، فأنت تفعل أقل من.
لذلك إذا كنت ستنتقل إلى اليمين ، فأنت تريد الانتقال إلى اليمين 4.
وماذا يحدث إذا كانت لديك النهاية هنا ، لذا إذا كان لديك 60 الأصلي
الخاص بك ، فحاول الانتقال 4. سيكون لديك أرقام يتم إسقاطها للتو.
لذا فبدلاً من أن يكون لدينا آخر 4 والذي لدينا
في الأصل مرة أخرى 60. إذن لدينا
0 0 0 1 1 1 1 0 0 ، علينا التحرك فوق 4.
لذلك سننتهي في النهاية بخسارة 2 بت لأنهم سيتراجعون.
وما سننتهي
به هو شيء مثل
0 0. وبالتالي فإن هذا سيكون مساويًا لـ
3 ، شيء من هذا القبيل ، لذا فأنت في الواقع تفقد البتات لأنك تنتقل إلى اليمين
كثيرًا ، لديك النتيجة 3. لذلك عليك توخي الحذر عند الانتقال
إلى اليسار واليمين ، وتأكد من استخدام تلك الـ 32 بت 4 بايت
مرة أخرى اعتمادًا على نظامك.
إنه ملخص سريع لمشغلي الأحجام.
عندما تصبح أكثر تقدمًا ، عليك أن تفهم كيف يمكنك
بالفعل التحقق مما إذا كان بت معين هو 1 أو 0.
انها بسيطة جدا. أنت فقط تفعل ذلك وعليه.
لكن عليك كتابة المزيد من التعليمات البرمجية.
لم يكن القصد من هذه المحاضرة أن تكون نظرة شاملة على مشغلي البتات.
أردت أن أقدم نظرة عامة ، وأعطيك
بداية جيدة في ذلك. ولكن من أجل فهم هؤلاء المشغلين بشكل أكبر
، سيتعين عليك دراسة المزيد قليلًا واستخدامهم وممارستهم.
لذلك آمل أن يكون هذا مفيدًا. مرة أخرى ، يمكن أن يكون الأمر مربكًا بعض الشيء
، لذا فأنت تريد المتابعة وتريد أن تتلاعب به. لكن مرة أخرى ، ما هي أفضل طريقة للتعلم ، وكتابة
بعض الرموز ، وتعلم بعض الأمثلة. شكرًا لك.