عامل التشغيل << في (Visual Basic)

ينفذ إزاحة حسابية لليمين لنقش البت.

result = pattern >> amount

الأجزاء

  • result
    مطلوبة. قيمة رقمية متكاملة. ناتج إزاحة نقش البت. نوع البيانات هو نفسه ل pattern.

  • pattern
    مطلوبة. تعبير رقمي متكامل (لا يتجزأ). نقش البت الذي تم إزاحته. نوع البيانات يجب أن يكون نوع متكامل (SByte، Byte، Short، UShort، Integer، UInteger، Long، أو ULong).

  • amount
    مطلوبة. تعبير رقمي. عدد وحدات البت لإزاحة نقش البت. نوع البيانات يجب أن يكون Integer أو موسع إلى Integer.

ملاحظات

الإزاحات الحسابية ليست دائرية ، وهذا يعني أن البت الذي أزيح من أحد أطراف النتيجة لا يظهر مجددًا في الطرف الآخر . في الإزاحة الحسابية لليمين ، يتم تجاهل البت المزاحة خارج موضع البت الموجود أقصى اليمين ، و البت الموجود أقصى اليسار (الإشارة) يتم نشره إلى مواضع البت الخالية في اليسار . وهذا يعني أنه عندما يكون ل pattern قيمة سالبة، فإن المكان الخالي يتم تعيينه إلى واحد : غير ذلك يعيًن إلى صفر .

لاحظ أن أنواع البيانات Byte، UShort، UInteger، و ULong بدون إشارة، لذا لا يوجد بت إشارة لينشر. إذا كان pattern من أي نوع بدون إشارة (طبيعي) ، دوماً تعيَن المواضع الخالية إلى صفر.

لتجنب إزاحة بت أكثر مما تتسع النتيجة ، فإن Visual Basic يغطي قيمة amount بتغيير حجم القناع ليوافق نوع البيانات ل pattern. يتم استخدام AND الثنائية لهذه القيم للمقدار المزاح. تغيير حجم الأقنعة كالتالي:

نوع بيانات pattern

تغيير حجم القناع (عشري)

تغيير حجم القناع (سداسي عشري)

SByte, Byte

7

&H00000007

Short, UShort

15

&H0000000F

Integer, UInteger

31

&H0000001F

Long, ULong

63

&H0000003F

إذا كانت amount تساوي صفر فإن قيمة result تماثل قيمة pattern. إذا كان amount سالباً، فإنه يتم أخذها كقيمة طبيعية ويتم حجبها مع قناع بحجم المناسب.

الإزاحات الحسابية لا تولِد استثناءات تجاوز السعة.

التحميل الزائد

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

مثال

يستخدم المثال التالي معامل >> لإجراء إزاحات حسابية لليمين على القيم المتكاملة. دوماً الناتج له نفس نوع البيانات للتعبير الذي تمت إزاحته.

Dim pattern As Short = 2560
' The bit pattern is 0000 1010 0000 0000.
Dim result1, result2, result3, result4, result5 As Short
result1 = pattern >> 0
result2 = pattern >> 4
result3 = pattern >> 10
result4 = pattern >> 18
result5 = pattern >> -1

نتائج المثال السابق كما يلي:

  • result1 هو 2560 (0000 1010 0000 0000).

  • result2 هو 160 (0000 0000 1010 0000).

  • result3 يكون 2 ( 0010 0000 0000 0000 ).

  • result4 يكون 640 (0000 1000 0010 0000).

  • result5 هي 0 (مزاحة 15 خانة لليمين).

مقدار الإزاحة ل result4 يحسب كـ AND بين 15 و 18 والتي تساوي 2.

يوضح المثال التالي االإزاحة الحسابية للقيم السالبة.

Dim negPattern As Short = -8192
' The bit pattern is 1110 0000 0000 0000.
Dim negResult1, negResult2 As Short
negResult1 = negPattern >> 4
negResult2 = negPattern >> 13

نتائج المثال السابق كما يلي:

  • negresult1 يكون -512 ( 0000 0000 1110 1111).

  • negresult2 هو -1 ( بت الإشارة ينشر)

راجع أيضًا:

المرجع

عوامل تشغيل البت Shift

عوامل تشغيل التعيين

عامل التشغيل في (Visual Basic)

أسبقية عامل التشغيل في Visual Basic

عوامل تشغيل مسرودة حسب الوظيفة

المبادئ

عوامل التشغيل الحسابية في (Visual Basic)