الانتقال إلى المحتوى الرئيسي

كيفية حساب عدد البتات المفردة: طريقة سهلة

  • جوانا الحكم بن سعد العشيرة
  • الأسئلة

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

يمكن استخدام إزاحة البت و (و) وإزاحة البت (>>) لإجراء عد البتات المفردة. جوهر هذا النهج هو أننا نطبق البت وعلى رقم بالرقم 1 للتحقق مما إذا كانت البتة الحالية واحدة. ثم نحول الرقم إلى اليمين بموضع واحد للتحقق من البت التالي. تتكرر هذه العملية حتى يصبح الرقم صفرا.

مثال:

1 & 1 = 1

1 & 0 = 0

0 & 1 = 0

0 & 0 = 0

وبالتالي ، فإن نتيجة البتات وستكون 1 فقط إذا كانت كلتا البتات تساوي واحدة.

بتطبيق هذه الطريقة على كل بت من عدد ، يمكننا حساب عدد البتات المفردة. من الضروري المرور عبر جميع المواضع في الرقم ، وإجراء عملية البت لكل موضع وعداد البتات المفردة ، ثم تحويل الرقم إلى اليمين.

  1. المفاهيم والتعاريف الأساسية
  2. الأساليب والأدوات المستخدمة
  3. تعليمات خطوة بخطوة
  4. أمثلة وحلول
  5. نصائح وتوصيات مهمة
  6. الأسئلة الشائعة
  7. سؤال وجواب
  8. كيف يمكنني حساب عدد من بت واحدة في عدد?

المفاهيم والتعاريف الأساسية

بت: بت (بت الإنجليزية ، من رقم ثنائي) هو الحد الأدنى لوحدة المعلومات التي تأخذ واحدة من قيمتين محتملتين: 0 أو 1. تستخدم البتات لتمثيل ومعالجة البيانات في أنظمة الكمبيوتر.

بايت: بايت (المهندس. بايت) هي وحدة قياس لكمية المعلومات التي تساوي القيمة الكافية لتمثيل حرف واحد. في أنظمة الكمبيوتر التقليدية ، يتكون البايت من 8 بتات.

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

قناع البت: قناع البت هو سلسلة من قيم البت المستخدمة لتصفية أو معالجة تسلسل آخر من البتات. يسمح لك قناع البت بتحديد بتات معينة من تسلسل بت أو تعيين قيم محددة لهذه البتات.

عدد البتات المفردة: عدد البتات المفردة في رقم ثنائي أو تسلسل بت هو عدد البتات ذات القيمة 1. يمكن أن يكون هذا المبلغ معلومات مفيدة عند تحليل البيانات أو إجراء عمليات معينة.

الأساليب والأدوات المستخدمة

  • لغة البرمجة: سيتم استخدام لغة برمجة بايثون في هذه المقالة.
  • وظائف لغة بايثون: لحساب عدد البتات المفردة ، سيتم استخدام وظائف بايثون التالية: بن () للحصول على تمثيل ثنائي لعدد ، عد() لحساب عدد البتات المفردة.
  • الحلقات: لاجتياز العناصر في التمثيل الثنائي للرقم ، سنستخدم حلقات مثل أو أثناء.
  • العمليات الحسابية: لإجراء عمليات حسابية بالأرقام ، سنستخدم عوامل رياضية مثل + و -.

تعليمات خطوة بخطوة

  1. خذ رقما ثنائيا تحتاج فيه إلى حساب عدد البتات المفردة.
  2. إعداد عداد لحساب بت واحدة. القيمة الأولية للعداد هي صفر.
  3. قراءة كل بت من رقم ثنائي ، بدءا من أدنى واحد.
  4. في حالة حدوث بت واحد ، قم بزيادة العداد بمقدار واحد.
  5. كرر الخطوتين 3 و 4 لجميع بتات الرقم الثنائي.
  6. في نهاية قراءة جميع البتات ، احصل على القيمة النهائية للعداد ، والتي ستكون عدد البتات المفردة في الرقم الأصلي.

أمثلة وحلول

فيما يلي بعض الأمثلة والحلول لحساب عدد البتات المفردة:

  • مثال 1: حساب عدد البتات المفردة في الرقم 5
  • بالنسبة للرقم 5 ، سيبدو التمثيل الثنائي مثل 101. وبالتالي ، فإن عدد البتات المفردة هو 2.

  • مثال 2: حساب عدد البتات المفردة في الرقم 12
  • بالنسبة للرقم 12 ، سيبدو التمثيل الثنائي مثل 1100. وبالتالي ، فإن عدد البتات المفردة هو 2.

  • مثال 3: حساب عدد البتات المفردة في الرقم 255
  • بالنسبة للرقم 255 ، سيبدو التمثيل الثنائي مثل 11111111. وبالتالي ، فإن عدد البتات المفردة هو 8.

للحصول على أرقام أكثر تعقيدا ، يمكنك استخدام خوارزمية تمر عبر جميع بتات الرقم وتحسب عدد البتات المفردة. يمكن تنفيذ هذه الخوارزمية باستخدام حلقة وتحويل البت وعمليات " و " البت.

على سبيل المثال ، يقوم رمز ج following التالي بحساب عدد البتات المفردة في رقم:

إنت كونتبيتس (إنت نوم) {

عدد الباحث = 0;

بينما (الأسطوانات > 0) {

إذا (الأسطوانات ٪ 2 == 1) {

count++;

}

الأسطوانات = الأسطوانات > > 1;

}

عد العودة;

}

يمكنك استدعاء هذه الوظيفة بأي رقم والحصول على عدد البتات المفردة فيها.

نصائح وتوصيات مهمة

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

  1. تحديد بعد المهمة: قبل البدء في الحساب ، من الضروري فهم مقدار البيانات التي يجب معالجتها. إذا كنا نتحدث عن كمية صغيرة ، على سبيل المثال ، بضعة بايت ، فإن هذه الطريقة ستعمل بسرعة كبيرة. ومع ذلك ، إذا كانت البيانات كبيرة ، فيمكنك محاولة استخدام خوارزميات أكثر كفاءة.
  2. تحسين إدخال البيانات والمخرجات: إذا كانت البيانات موجودة في ملف ، فقد تستغرق قراءة المعلومات وكتابتها إلى الملف وقتا طويلا. حاول استخدام طريقة أسرع للوصول إلى البيانات ، مثل تخزين البيانات في ذاكرة الوصول العشوائي أو استخدام طرق إدخال/إخراج محسنة أكثر.
  3. استخدم عمليات عدد صحيح: بدلا من معالجة البتات الفردية ، يمكن استخدام عمليات الأعداد الصحيحة لحساب البتات الفردية بشكل أسرع وأكثر كفاءة. على سبيل المثال ، يمكن أن يؤدي التحول في اتجاه البت والعمليات إلى تسريع عملية العد بشكل كبير.
  4. استخدام خاصية تعدد: إذا كان ذلك ممكنا ، فمن الممكن معالجة عدة أجزاء من البيانات بالتوازي باستخدام خاصية تعدد. سيؤدي ذلك إلى تسريع وقت تنفيذ المهمة عن طريق توزيع الحسابات بين العديد من نوى المعالج.
  5. تحقق من النتائج: بعد إجراء عد البتات المفردة ، من الضروري التحقق من صحة النتائج. قارن النتيجة بالقيمة المتوقعة وتأكد من أن الخوارزمية تعمل بشكل صحيح لجميع الحالات الممكنة.

باستخدام هذه النصائح والحيل ، يمكنك حساب عدد البتات المفردة بشكل فعال بطريقة بسيطة.

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

  • كيف خوارزمية لحساب عدد من بت واحدة تعمل?

    تقرأ الخوارزمية بتات حرف الرقم حسب الحرف وتتحقق مما إذا كانت البتة الحالية واحدة. إذا كان البت هو 1 ، فسيتم زيادة عداد بت الوحدة بمقدار 1. تتكرر هذه العملية لكل بت من الرقم. سيكون عدد البتات المفردة في النهاية مساويا لقيمة العداد.

  • كيفية تحسين عد عدد من بت واحدة?

    يتم وصف الطريقة البسيطة في المقالة ، ولكن هناك خوارزميات أكثر كفاءة. يستخدم البعض منهم عمليات البت ، مما يقلل من عدد التكرارات ويحسن الأداء. واحدة من هذه الخوارزميات هي "عد بت سريع" (الإنجليزية "التلاعب بت"). يتطلب تنفيذه استخدام أقنعة البت وعمليات البت.

  • في أي الحالات قد يكون من الضروري حساب عدد البتات المفردة?

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

  • هل هناك وظائف أو مكتبات جاهزة لحساب عدد البتات المفردة?

    نعم ، هناك وظائف ومكتبات جاهزة لحساب عدد البتات المفردة. على سبيل المثال ، تحتوي المكتبة القياسية للغة برمجة سي++ على دالة __مدمجة_بوبكونت ، والتي ترجع عدد البتات المفردة في رقم. وظائف مماثلة موجودة أيضا في لغات البرمجة والمكتبات الأخرى.

سؤال وجواب

كيف يمكنني حساب عدد من بت واحدة في عدد?

لحساب عدد البتات المفردة في رقم ، يمكنك استخدام طريقة بسيطة تعتمد على عمليات البت. في هذه الطريقة ، نستخدم "و" (&) قليلا للتحقق من كل بت من الرقم. إذا كان قليلا هو واحد ، ونحن زيادة العداد. ثم قم بتحويل الرقم إلى اليمين بمقدار بت واحد وكرر العملية حتى يصبح الرقم صفرا.