0Pricing
C# Academy · درس

العوامل على مستوى البت والإزاحة

عالجوا البتات باستخدام & و| و^ و~ وعوامل الإزاحة

العوامل على مستوى البت والإزاحة درس مجاني في C# Academy على CoddyKit. هذا هو الدرس 3 من أصل 4. يمكنك قراءة الدرس كاملاً أدناه مجاناً — ثم تمرن عليه مباشرة في المتصفح باستخدام محرر أكواد مدمج ومدرس ذكاء اصطناعي متاح 24/7. هذا الدرس جزء من مسار التعلم في C# Academy، وتقدمك يتزامن عبر الويب وتطبيق CoddyKit. تتضمن دورة C# Academy 4 دروس في المجموع.

البتات والنظام الثنائي

تُخزَّن الأعداد الصحيحة على شكل بتات. وتعمل العوامل على مستوى البتات على هذه البتات الفردية. توفر C# العوامل & و| و^ و~ و<< و>>.

using System;

class Program {
    static void Main() {
        int x = 5;
        Console.WriteLine(Convert.ToString(x, 2));
    }
}

AND على مستوى البتات: &

يضبط & البت إلى 1 فقط عندما يكون كلا البتين يساوي 1. تقارن 5 & 3 بين 101 و011، فتحصل على 001 = 1.

using System;

class Program {
    static void Main() {
        Console.WriteLine(5 & 3);
        Console.WriteLine(12 & 10);
    }
}

OR على مستوى البتات: |

يضبط | البت إلى 1 عندما يكون أحد البتين يساوي 1. وتعطي 5 | 3 النتيجة 111 = 7.

using System;

class Program {
    static void Main() {
        Console.WriteLine(5 | 3);
        Console.WriteLine(8 | 1);
    }
}

XOR على مستوى البتات: ^

يضبط ^ البت إلى 1 عندما يختلف البتان. وتعطي 5 ^ 3 النتيجة 110 = 6.

using System;

class Program {
    static void Main() {
        Console.WriteLine(5 ^ 3);
        Console.WriteLine(7 ^ 7);
    }
}

NOT على مستوى البتات: ~

يقلب ~ كل بت. وبسبب استخدام تمثيل متمم الاثنين، تساوي ~n القيمة -(n + 1).

using System;

class Program {
    static void Main() {
        Console.WriteLine(~5);
        Console.WriteLine(~0);
    }
}

الإزاحة إلى اليسار: &lt;&lt;

تنقل << البتات إلى اليسار، وتملأ الجهة اليمنى بأصفار. تضاعف كل إزاحة بمقدار واحد القيمة: فـ1 << 3 تساوي 8.

using System;

class Program {
    static void Main() {
        Console.WriteLine(1 << 3);
        Console.WriteLine(5 << 1);
    }
}

الإزاحة إلى اليمين: &gt;&gt;

تنقل >> البتات إلى اليمين. وبالنسبة إلى الأعداد الموجبة، تقسم كل إزاحة القيمة إلى النصف: فـ20 >> 2 تساوي 5.

using System;

class Program {
    static void Main() {
        Console.WriteLine(20 >> 2);
        Console.WriteLine(8 >> 1);
    }
}

أقنعة البتات

يعزل القناع بتات محددة. استخدم AND مع قيمة وقناع للاحتفاظ بهذه البتات فقط.

using System;

class Program {
    static void Main() {
        int value = 0b1011;
        int mask = 0b0110;
        Console.WriteLine(value & mask);
    }
}

ضبط البتات ومسحها

استخدم | مع قناع ذي بت واحد لضبط بت، واستخدم & مع القناع المعكوس لمسحه.

using System;

class Program {
    static void Main() {
        int flags = 0;
        flags |= (1 << 2);
        Console.WriteLine(flags);
        flags &= ~(1 << 2);
        Console.WriteLine(flags);
    }
}

التحقق من بت

للتحقق مما إذا كان بت مضبوطًا، استخدم AND مع القناع الخاص به وقارن النتيجة بقيمة غير صفرية.

using System;

class Program {
    static void Main() {
        int flags = 0b0100;
        bool isSet = (flags & (1 << 2)) != 0;
        Console.WriteLine(isSet);
    }
}

الإزاحة كضرب سريع

تُعد الإزاحة طريقة سريعة للضرب أو القسمة على قوى العدد اثنين، وهي شائعة في التعليمات البرمجية الحساسة للأداء.

using System;

class Program {
    static void Main() {
        int n = 7;
        Console.WriteLine(n << 2);
        Console.WriteLine(n >> 1);
    }
}

اختبار سريع

اختبر معرفتك بالعوامل على مستوى البتات.

مراجعة

تعمل العوامل على مستوى البتات بتًا بتًا: & لـ AND، و| لـ OR، و^ لـ XOR، و~ لـ NOT. وتنقل الإزاحتان << و>> البتات إلى اليسار أو اليمين، فتضربان أو تقسمان على قوى العدد اثنين.

باستخدام الأقنعة، يمكنك ضبط البتات الفردية ومسحها واختبارها، وهو الأساس المستخدم في العلامات والعمل مع البيانات منخفضة المستوى.

الأسئلة الشائعة

هل درس «العوامل على مستوى البت والإزاحة» مجاني؟

نعم — نص درس «العوامل على مستوى البت والإزاحة» كامل متاح مجاناً هنا على الويب. لتمرينه بشكل تفاعلي (محرر أكواد مدمج ومدرس ذكاء اصطناعي متاح 24/7) وفتح باقي دورة C# Academy، انتقل إلى CoddyKit PRO. تتضمن دورة C# Academy 4 دروس في المجموع.

ماذا ستتعلم في «العوامل على مستوى البت والإزاحة»؟

عالجوا البتات باستخدام & و| و^ و~ وعوامل الإزاحة تتمرن على C# Academy مع أكواد عملية تشغلها مباشرة في المتصفح، ومدرس ذكاء اصطناعي متاح 24/7 يجيب على أسئلتك أثناء عملك.

هل أحتاج إلى خبرة سابقة لأبدأ C# Academy؟

لا تُشترط خبرة سابقة. C# Academy على CoddyKit منظم للمبتدئين حتى المتقدمين، لذا يمكنك البدء من هنا أو من البداية والتقدم بسرعتك الخاصة. هذا هو الدرس 3 من أصل 4.

كم من الوقت يستغرق درس «العوامل على مستوى البت والإزاحة»؟

معظم دروس CoddyKit تستغرق حوالي 5–10 دقائق. كل منها موجز وتفاعلي، لذا تحرز تقدماً مستمراً وتستأنف من حيث توقفت عبر الويب والتطبيق.

هل يمكنني كتابة وتشغيل أكواد في درس C# Academy هذا؟

نعم. كل درس في C# Academy يتضمن محرر أكواد مدمج، لذا تكتب وتشغل أكواداً حقيقية مباشرة في متصفحك وتحصل على تعليقات فورية من الذكاء الاصطناعي — بدون إعداد محلي.

جميع الدروس في هذه الدورة

  1. عوامل الحساب والإسناد
  2. عوامل المقارنة والمنطق
  3. العوامل على مستوى البت والإزاحة
  4. أسبقية العوامل وترابطها
← العودة إلى C# Academy