[سؤال] ما هى فائدة Bitwise Operator و ال Shift Operators - نسخة قابلة للطباعة +- منتدى فيجوال بيسك لكل العرب | منتدى المبرمجين العرب (http://vb4arb.com/vb) +-- قسم : قسم لغة السي شارب C#.NET (http://vb4arb.com/vb/forumdisplay.php?fid=175) +--- قسم : قسم اسئلة C#.NET (http://vb4arb.com/vb/forumdisplay.php?fid=176) +--- الموضوع : [سؤال] ما هى فائدة Bitwise Operator و ال Shift Operators (/showthread.php?tid=17425) |
ما هى فائدة Bitwise Operator و ال Shift Operators - نور الدين وليد - 23-09-16 السلام عليكم ورحمة الله حياكم الله أريد معرفة ماهى فائدة ال Bitwise Operators التى تعمل على البتات أنا أعرف كيف تعمل ولكن أريد معرفة فائدتها ومتى أحتاجها؟ أيضا هناك Shift Operator وهذه أنا لم أفهم منها شيئا ولا أعرف كيف تستخدم لذا أرجو المساعدة فى شرحها . وجزاكم الله خيرا ....... RE: ما هى فائدة Bitwise Operator و ال Shift Operators - عبد الكريم كنعان - 01-01-17 (23-09-16, 10:20 PM)نور الدين وليد كتب : السلام عليكم ورحمة الله وعليكم السلام ورحمة الله وبركاته هذا شرح من مايكروسوفت مع مثال على Shift Operators https://msdn.microsoft.com/en-us/library/a1sway8w.aspx اذا تبحث عن شرح بالعربي ممكن تبحث عن شرح باستخدام لغة السي بلس بلس ، نفس المفهوم أما عن أهميتهما في الحياة العملية، ليس عندي مثال واقعي ولكن أعتقد ممكن تكون مفيدة للتطبيقات التي تتصل مع الأجهزة الإلكترونية باستخدام Micro .NET Framework RE: ما هى فائدة Bitwise Operator و ال Shift Operators - الشاكي لله - 01-01-17 اذا كنت تسأل عن طريقة الاستخدام فتوجد دروس كثيرة متوفرة عن الـ bitwise operators ولكن ان سألت في ماذا نستفيد منهم ، فهذا كلام اخر .. اساسا هذه عمليات قديمة فالان نحن لدينا السي شارب ومكتبات الدوت نت عالية المستوى التي توفر دوال جاهزة لكل شيئ ، فتقريبا نادرا مانستخدام هذه العمليات وان اُستخدمت ، سيكون لغرض زيادة سرعة التطبيق لان بعض الدوال تاخذ وقت في تنفيذها. كما هو الحال في الـ Pointers في السي شارب ، نادرا مايستخدم بسبب ان له بدائل اسهل واكثر امانا مثل IntPtr وحتى الـ Shift Operators كان يستخدم لعمل power لرقم معين ولكن الدوت نت توفر دالة جاهزة (Math.pow) . -- فعليا لم استخدم هذه المعاملات الا في حالة الـ Flags وفعلا وجدتها مفيدة :- اولا قمت بانشاء Enum : PHP كود : [Flags] الان لو حبيت استخدم الـ enum ، بالطبع جميعا نعرف كيف نستخدمه PHP كود : circule.Pos = Position.Down ولكن ماذا لو اردت ان ان اضع الدائرة في الزاوية السفلى على اليسار ؟ بما اننا استعملنا الـ flags ، فيمكننا القيام بالتالي : PHP كود : circule.Pos = Position.Down | Position.Left وفي كود خاصية Pos يوجد الكود التالي الذي يحدد محتوى الخاصية Pos PHP كود : if((pos & Position.Top) == Position.Top) في الكود السابق سيتم الدخول في كلا الشرطين بسبب اننا ارسلنا للخاصية Position.Down | Position.Left -- وهذا بالضبط مبدأ عمل الخاصية المشهورة Anchor PHP كود : button1.Anchor = (AnchorStyles.Bottom | AnchorStyles.Right); رغم ذلك يوجد اسلوب اخر بديل عن هذا ، ولكن هذا اسلوب سريع وجيد نوعا ما هذه الحالة الوحيدة التي استفدت منها من الbitwise operator -- لمزيد من المعلومات : http://stackoverflow.com/questions/3883384/practical-applications-of-bitwise-operations |