0Pricing
Swift Academy · درس

عوامل البت وتجاوز السعة

عالج البتات واستخدم عوامل تجاوز السعة مثل &+ بأمان.

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

المعاملات على مستوى البتات

تعمل المعاملات على مستوى البتات على الأرقام الثنائية الفردية للأعداد الصحيحة. توفر Swift معاملات AND وهي &، وOR وهي |، وXOR وهي ^، وNOT وهي ~، ومعاملَي الإزاحة << و>>.

let a: UInt8 = 0b1100
let b: UInt8 = 0b1010
print(a & b)
print(a | b)

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

يضبط & كل بت في الناتج على 1 فقط عندما يكون كلا البتين المدخلين يساوي 1. ويُستخدم غالبًا لحجب بعض البتات.

let value: UInt8 = 0b10110101
let mask: UInt8 = 0b00001111
let low = value & mask
print(low)

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

يضبط | كل بت في الناتج على 1 عندما يكون أحد البتين المدخلين يساوي 1. ويفيد في دمج العلامات.

let flagsA: UInt8 = 0b0001
let flagsB: UInt8 = 0b0100
let combined = flagsA | flagsB
print(combined)

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

يضبط ^ البت على 1 فقط عندما يختلف البتان المدخلان. ويؤدي تطبيق XOR على القيمة نفسها مرتين إلى استعادة القيمة الأصلية.

let original: UInt8 = 0b1010
let key: UInt8 = 0b0110
let encoded = original ^ key
let decoded = encoded ^ key
print(encoded, decoded)

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

يقلب المعامل الأحادي ~ كل بت. وبالنسبة إلى UInt8، تنقلب البتات الثمانية كلها.

let bits: UInt8 = 0b00001111
let inverted = ~bits
print(inverted)

الإزاحة إلى اليسار

ينقل << البتات إلى اليسار، مع ملء الخانات بأصفار. وكل إزاحة إلى اليسار بمقدار 1 تضاعف قيمة غير موقعة.

let n: UInt8 = 0b00000011
print(n << 1)
print(n << 2)

الإزاحة إلى اليمين

ينقل >> البتات إلى اليمين. وبالنسبة إلى الأعداد الصحيحة غير الموقعة، يملأ الخانات بأصفار، وهو ما يعادل القسمة على قوى العدد اثنين.

let n: UInt8 = 0b00010000
print(n >> 1)
print(n >> 4)

تجاوز السعة مع المعاملات العادية

تُطلق العمليات الحسابية العادية فخًا عند تجاوز السعة للحفاظ على أمان برنامجك: فتجاوز الحد الأقصى لنوع ما يؤدي عادةً إلى تعطل البرنامج بدل الالتفاف بصمت.

let maxByte = UInt8.max
print("Max UInt8:", maxByte)
let safe = Int(maxByte) + 1
print("Promoted sum:", safe)

جمع تجاوز السعة &+

عندما تريد الالتفاف عمدًا، استخدم معاملات تجاوز السعة. يلتف &+ بعد تجاوز الحد الأقصى ليعود إلى الحد الأدنى بدلًا من التسبب في تعطل البرنامج.

let maxByte: UInt8 = 255
let wrapped = maxByte &+ 1
print(wrapped)

طرح وضرب تجاوز السعة

يلتف &- و&* بالطريقة نفسها. فالناتج 0 &- 1 من النوع UInt8 يلتف ليصبح 255.

let zero: UInt8 = 0
print(zero &- 1)
let big: UInt8 = 200
print(big &* 2)

متى تستخدم معاملات تجاوز السعة

استخدم &+ &- &* فقط عندما يكون الالتفاف هو السلوك المقصود، مثل التجزئة أو العدادات الدورية. وفي غير ذلك، فضّل المعاملات التي تطلق فخًا حفاظًا على الأمان.

var counter: UInt8 = 254
for _ in 0..<4 {
    counter = counter &+ 1
    print(counter)
}

تحقق سريع

فكّر في الالتفاف الناتج عن تجاوز السعة.

مراجعة: المعاملات على مستوى البتات وتجاوز السعة

تعلمت معاملات البتات & | ^ ~ ومعاملَي الإزاحة << >>، وأن العمليات الحسابية العادية تطلق فخًا عند تجاوز السعة حفاظًا على الأمان، وأن &+ &- &* تلتف عمدًا ضمن حدود النوع.

let mask: UInt8 = 0b1111
let v: UInt8 = 0b10101010
print("Masked:", v & mask)
print("Wrap:", UInt8(0) &- 1)

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

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

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

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

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

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

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

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

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

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

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

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

  1. عوامل الحساب والإسناد المركب
  2. عوامل المقارنة والهوية
  3. العوامل المنطقية والتنفيذ بالتقييم القصير
  4. عوامل البت وتجاوز السعة
← العودة إلى Swift Academy