سؤال

في علوم الكمبيوتر الثاني الصف الأستاذ ترى ++,--,*=, الخ.2 العمليات.ومع ذلك ، في الجمعية مستوى هذا ليس حقا اثنين من العمليات.يمكن للشخص أن يفسر أو أن هذا فقط من أجل البساطة ؟

هل كانت مفيدة؟

المحلول

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

كم عدد العمليات التي هي في مستوى التجميع سوف يعتمد على ما كنت تزايد، ومنصة، والأجهزة وغيرها.

نصائح أخرى

ولأن ++ (مثلا: ب ++) هو تبسيط

b = b + 1 

وهناك نوعان من العمليات هناك، إضافة (ب + 1) ومن ثم التنازل عن قيمة بالإضافة إلى المتغير الأصلي.

لماذا تهتم عند القيام بتحليل التعقيد؟ انها مجرد O (1): -)

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

أنا ستعمل رمي بعض التخمينات.

  • هو أستاذ يشير إلى تفسير اللغات ؟
  • ++لا يختلف i++ ربما تشير إلى ذلك ؟
  • ربما له الجمعية lang الاختيار يحتاج إلى وسيطة تخزين متغير ؟

    add reg_temp, reg_i, 1
    mov reg_i, reg_temp
    

وأليس من إضافة بالإضافة إلى اضع؟

وعلى غرار ط + 1 =؟

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

وفي الانتهاء من كل شيء مستوى التجميع في سجلات وذلك بعد متغير في A

ADD AX,1

ولكن، في لغات جمعت كل شيء يجب أن يتم تخزينها لذلك أنا ++ يصبح (في التجمع الزائفة)

MOV AX,i
ADD AX, 1
MOV i, AX

والتي هي ثلاث عمليات ... ما لم لقد نسيت الهندسة المعمارية الأساسية تماما ...

أنت ذكرتني نوعا ما "التحكيم ليس"المشكلة التي سمعت منذ زمن طويل.

"Preincrement أسرع من postincrement"

أنا فقط فعلت جوجل للبحث سريع.

  1. الكثير من الناس ما زالوا يحملون ذلك على النحو الصحيح.
  2. آخرون يؤكدون أن المجمعين حتى الأمثل المقارن مستوى عال رمز رمز لا يمكن قياسها.
  3. بعد الآخرين يؤكدون أنه لا يوجد فرق.

وينبغي أن يكون أكثر من 2 في رأيي لأنه معنيان اعتمادا على السياق ولدي دائما أن أذكر نفسي منهم عندما أراه.

وa = b++ هو نفس a = b; b = b + 1

و

وa = ++b هو نفس b = b + 1; a = b

وهذا هو ما يكفي من الارتباك لإرسال معظم طلاب السنة الأولى قبالة الهاوية.

مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top