خوارزميات الأعداد الثنائية

من موسوعة حسوب
اذهب إلى التنقل اذهب إلى البحث

تستخدم خوارزميات البتات Bitwise Algorithms لتنفيذ عمليات على مستوى البت bit-level أو لإجراء تعديلات على البتات وبطرق مختلفة. تكون العمليات المجراة على مستوى البت أسرع من العمليات العادية وتستخدم في بعض الأحيان لزيادة فعالية البرامج.

فعلى سبيل المثال: للتحقق من كون عددٍ معيّنٍ زوجيًا أو فرديًا، يمكن استخدام العامل (AND &). إذ لو جرى تعيين آخر بت في العامل فإنّ العدد يكون فرديًا، وإلا فإنّه زوجي. وهكذا إن لم يساوِ التعبير num & 1 صفرًا فإنّ العدد سيكون فرديًا وإلا فإنّه عدد زوجي.

زيادة عدد بمقدار واحد دون استخدام العوامل

تضيف هذه الخوارزمية العدد 1 على العدد المعطى دون استخدام أيٍّ من العوامل الرياضية مثل  ‎‘+’, ‘-‘, ‘*’, ‘/’, ‘++’, ‘–‘‎.

التحقق من كون رقمين صحيحين يحملان إشارتين متعاكستين

تتحقّق هذه الخوارزمية ممّا إذا كان رقمان صحيحان يمتلكان إشارتين مختلفتين دون استخدام أيٍّ من العوامل الرياضية.

العثور على العنصر الفريد في المصفوفة

تعثر هذه الخوارزمية على العنصر الفريد في مصفوفة تضمّ عناصر تتكرر ثلاث مرّات.

تبديل البتات في عدد معين

تبدّل هذه الخوارزمية بين موقعين (من الجانب الأيمن) في التمثيل البياني للعدد المعطى بشرط عدم حصول تداخل بين مجموعتي البتات، ثم تعيد النتيجة.

تدوير البتات

تدوير البتات Bit Rotation (أو الإزاحة الدائرية circular shift) هي عملية مشابهة لإزاحة البتات باستثناء أنّ البتات التي تخرج من أحد الأطراف تعود مرة أخرى من الطرف الآخر.