تقييم الموضوع :
  • 0 أصوات - بمعدل 0
  • 1
  • 2
  • 3
  • 4
  • 5
[سؤال] ما هى فائدة Bitwise Operator و ال Shift Operators
#1
السلام عليكم ورحمة الله
حياكم الله  Smile

أريد معرفة ماهى فائدة ال Bitwise Operators التى تعمل على البتات أنا أعرف كيف تعمل ولكن أريد معرفة فائدتها ومتى أحتاجها؟ 

أيضا هناك Shift Operator وهذه أنا لم أفهم منها شيئا  Big Grin  ولا أعرف كيف تستخدم لذا أرجو المساعدة فى شرحها .

وجزاكم الله خيرا ....... Smile
الرد }}}
تم الشكر بواسطة:
#2
(23-09-16, 10:20 PM)نور الدين وليد كتب : السلام عليكم ورحمة الله
حياكم الله  Smile

أريد معرفة ماهى فائدة ال Bitwise Operators التى تعمل على البتات أنا أعرف كيف تعمل ولكن أريد معرفة فائدتها ومتى أحتاجها؟ 

أيضا هناك Shift Operator وهذه أنا لم أفهم منها شيئا  Big Grin  ولا أعرف كيف تستخدم لذا أرجو المساعدة فى شرحها .

وجزاكم الله خيرا ....... Smile

وعليكم السلام ورحمة الله وبركاته

هذا شرح من مايكروسوفت مع مثال على Shift Operators 
https://msdn.microsoft.com/en-us/library/a1sway8w.aspx

اذا تبحث عن شرح بالعربي ممكن تبحث عن شرح باستخدام لغة السي بلس بلس ، نفس المفهوم

أما عن أهميتهما في الحياة العملية، ليس عندي مثال واقعي ولكن أعتقد ممكن تكون مفيدة للتطبيقات التي تتصل مع الأجهزة الإلكترونية باستخدام Micro .NET Framework
الرد }}}
تم الشكر بواسطة:
#3
اذا كنت تسأل عن طريقة الاستخدام فتوجد دروس كثيرة متوفرة عن الـ bitwise operators

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

وان اُستخدمت ، سيكون لغرض زيادة سرعة التطبيق لان بعض الدوال تاخذ وقت في تنفيذها.
كما هو الحال في الـ Pointers في السي شارب ، نادرا مايستخدم بسبب ان له بدائل اسهل واكثر امانا مثل IntPtr


وحتى الـ Shift Operators كان يستخدم لعمل power لرقم معين ولكن الدوت نت توفر دالة جاهزة (Math.pow) .


--


فعليا لم استخدم هذه المعاملات الا في حالة الـ Flags وفعلا وجدتها مفيدة :-

اولا قمت بانشاء Enum :


PHP كود :
[Flags]
public 
enum Position
{
 
    Down 1,
 
   Top 2,
 
   Left 4,
 
   Right 8


الان لو حبيت استخدم الـ enum ، بالطبع جميعا نعرف كيف نستخدمه

PHP كود :
circule.Pos Position.Down 


ولكن ماذا لو اردت ان ان اضع الدائرة في الزاوية السفلى على اليسار ؟
بما اننا استعملنا الـ flags ، فيمكننا القيام بالتالي Smile :

PHP كود :
circule.Pos Position.Down Position.Left 



وفي كود خاصية Pos يوجد الكود التالي الذي يحدد محتوى الخاصية Pos
PHP كود :
if((pos Position.Top) == Position.Top)
{
 
   // pos has Top
}

if((
pos Position.Left) == Position.Left)
{
 
   // pos has Left


في الكود السابق سيتم الدخول في كلا الشرطين بسبب اننا ارسلنا للخاصية Position.Down | Position.Left



--

وهذا بالضبط مبدأ عمل الخاصية المشهورة Anchor

PHP كود :
button1.Anchor = (AnchorStyles.Bottom AnchorStyles.Right); 



رغم ذلك يوجد اسلوب اخر بديل عن هذا ، ولكن هذا اسلوب سريع وجيد نوعا ما

هذه الحالة الوحيدة التي استفدت منها من الbitwise operator



--

لمزيد من المعلومات :

http://stackoverflow.com/questions/38833...operations
الرد }}}
تم الشكر بواسطة: ابو ليلى , LoveVb , محمد كريّم , sendbad100 , sendbad100


التنقل السريع :


يقوم بقرائة الموضوع: بالاضافة الى ( 1 ) ضيف كريم