عامل التشغيل >> (مرجع #C)

يزيح عامل الإزاحة لليسار (<<) مُعامله الأول إلى اليسار عدد البتات المعينة من قبل معامله الثاني. يجب أن يكون نوع المُعامل الثاني int أو أي نوع يحتوي على تحويل ضمني رقمي معرف مسبقاً إلى int.

ملاحظات

إذا كان المُعامل الأول int أو uint (كمية من 32 بت) يتم أخذ حجم الإزاحة من آخر خمس بتات من الترتيب المنخفض من المعامل الثاني. أي أن حجم الإزاحة الفعلي يكون من 0 إلى 31 بت.

إذا كان المُعامل الأول long أو ulong (كمية من 64 بت) يتم أخذ حجم الإزاحة من آخر ست بتات من الترتيب المنخفض من المعامل الثاني. أي أن حجم الإزاحة الفعلي يكون من 0 إلى 63 بت.

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

يمكن للأنواع المعرفة من قبل المستخدم من التحميل الزائد لعامل التشغيل << (راجع عامل التشغيل)، يجب أن يكون نوع المعامل الأول هو النوع المعرف من قبل المستخدم ويجب أن يكون نوع المُعامل الثاني int. عند التحميل الزائد لعامل تشغيل ثنائي يتم التحميل الزائد ضمنياً لعامل التعيين المناظر ، إن وجد.

مثال

class MainClass11
{
    static void Main()
    {
        int i = 1;
        long lg = 1;
        // Shift i one bit to the left. The result is 2.
        Console.WriteLine("0x{0:x}", i << 1);
        // In binary, 33 is 100001. Because the value of the five low-order
        // bits is 1, the result of the shift is again 2. 
        Console.WriteLine("0x{0:x}", i << 33);
        // Because the type of lg is long, the shift is the value of the six
        // low-order bits. In this example, the shift is 33, and the value of
        // lg is shifted 33 bits to the left.
        //     In binary:     10 0000 0000 0000 0000 0000 0000 0000 0000 
        //     In hexadecimal: 2    0    0    0    0    0    0    0    0
        Console.WriteLine("0x{0:x}", lg << 33);
    }
}
/*
Output:
0x2
0x2
0x200000000
*/

التعليقات

لاحظ أن i<<1 و i<<33 يعطي نفس النتيجة لأن لدى 33 و 1 نفس البتات الخمس في الترتيب المنخفض.

راجع أيضًا:

المرجع

عوامل تشغيل #C

المبادئ

دليل البرمجة لـ #C

موارد أخرى

مرجع C#‎