Operator precedence and associatively

Greetings,
I'm a Java newbie, and reflecting that is this concept questions. I'm trying to understand operator precedence and associatively. I understand that operator associatively is how items are read in an expression - like, they (items) are read from left to right. The book I'm trying to learn from talks a lot about this but it all blows over my head.
I was wondering if one of you Java wizards could explain this concept to me in greater detail. I would really appreciate any thoughts.
thanks a lot!
Stephen

Thousands will disagree with me, but IMHO you should use brackets to make things clear rather
than assume everyone knows all the precedence rules.
Basically the concept is:
1 + 2 * 3 : Does the plus get done first (leaving 3 * 3) or does the the multiply (leaving 1 + 6) ?
* has a higher precedence so you get 1 + (2 * 3). If you had written it that way in the first place
you would be less likely to get it wrong when debugging at 3am.
Associativity comes in when you have two operators of the same precedence.
Hope this helps !

Similar Messages

  • Please help me to understand operator precedence and associativity

    I am trying to run following code:
    long i = 10;
    long k = ++i + i - i - --i ; // here i is pre incremented and decremente
    System.out.println(k);
    gives output: 4
    and
    long i = 10;
    long k = i++ + i-- - i-- - i-- ; // here i is post incremented and decremente
    System.out.println(k);
    gives output: 2
    Please give me the steps of each evaluation
    I mean how this gives output value:
    any suggesion highly appreciated

    I am trying to run following code:
    long i = 10;
    long k = ++i + i - i - --i ; // here i is pre
    incremented and decremente
    System.out.println(k);
    gives output: 4
    and
    long i = 10;
    long k = i++ + i-- - i-- - i-- ; // here i is post
    incremented and decremente
    System.out.println(k);
    gives output: 2
    Please give me the steps of each evaluationNo one in their right mind would ever write code this way.
    Looks like a certification or homework problem.
    >
    I mean how this gives output value:
    any suggesion highly appreciatedI'd suggest that you read the precedence rules and go through these very carefully.
    %

  • Precedence and Associativity code snippet

    Look at this code snippet and assume the value of i is 2:
    ((k = (++i)) + (j = (2 * (++i))))We have the pre-increment operator showing up twice and that operator is the highest level precedence in this example. Next in line as far as precedence goes is the multiply operator. So what I did was I went to the far right and raised i from 2 to 3
    and then I figured since multiplication is the next in level of precedence I multiplied 3 * 2 to get 6.
    But I guess that's not the correct way to evaluate this. The author said when you have two operators that are of the same level of precedence, Java uses associativity rules to "break the tie."
    So I guess the correct thing to do is first increment i from 2 to 3 at the far left and then assign that to k.
    I'm just a bit confused I guess. I thought step 1 would be to go to the far right and increment i from 2 to 3. Then step 2 would be to carry out the multiply operation.
    Now the increment operator and the assignment operator are right associative. So the increment operator binds to variable i and the assignment operator binds to the result of incrementing i.
    But I don't see the connection between being right associative and proceeding to evaluate expressions from left to right. I'm still not completely understanding why we evaluate the far left expression first and not do the far right one first.
    Edited by: 357mag on Jun 6, 2010 7:46 PM
    Edited by: 357mag on Jun 6, 2010 7:48 PM
    Edited by: 357mag on Jun 6, 2010 7:49 PM

    Savitch said Java first does binding; that is it fully parenthesizes the expression using precedence and associativity rules. Then it evaluates expressions left to right.If that's what he says he is wrong. There is no such thing as 'binding; that is it fully parenthesizes the expression using precedence and associativity rules,' and I've already shown that 'evaluates expressions left to right' isn't correct either. See also the JLS, where none of this fantasy is mentioned. Compilers don't 'fully parenthesize' expressions. They parse them according to the grammar, which defines precedence and associativity; then they evaluate the operators in order of precedence, evaluating the operands of each operator in left-to-right order.
    Walter Savitch is apparently a professor of CS and should know better than that. I'd like to see what he really said.
    Since multiplication has a higher level of precedence than addition we perform the multiply operation first.Of course we do. That's not the point at issue.
    Java is actually doing this:
    d = a + (b * c)
    That is the point at issue. This is incorrect. Java isn't 'actually doing this' at all. That's just begging the question. There is no compilation step that corresponds to the insertion of those parentheses. What is actually happening is that operator precedence dictates that the multiplication be evaluated before the addition.
    As I said above, to a compiler writer, () is just another operator. Explaining operator precedence in terms of parentheses is putting the cart before the horse. It works the other way round.
    Answer is 7Of course it is. That's not in dispute.
    It's like the BODMAS you learned in 3rd grade.
    The way it is actually done is (a) turning the expression into a parse tree, with the operators already in the correct place due to precedence, as dictated by the grammar, and (b) outputting a Reverse-Polish representation of the expression, which in the above case would look like this:
    PUSH 1
    PUSH 2
    PUSH 3
    MULTIPLY ; pop the top two elements on the stack, multiply them, and push the result
    ADD ; pop the top two elements on the stack, add them, and push the result.
    No parentheses there.

  • Help with operator precedence.

    I'm having trouble telling whether + and - signs are unary or binary in figuring out operator precedence. I understand that the unary makes things positive and negative and that the binary is addition and subtraction. here is an example from my notes.
    a + b > - c I I ! d && e == f - g % h. It says that the a+b is the first order of evaluation. Heres the full order is gives for the order of evaluation. (132948765) What I don't understand is how the first plus is unary and not binary because it seems to be addition, and I was under the influence that the unary+ is not used very much. Could someone clear this up. Thanks
    Edited by: javaguy84 on Oct 4, 2007 10:38 PM
    Edited by: javaguy84 on Oct 4, 2007 10:39 PM

    What I don't understand is how the first plus is unary and not binary because it seems
    to be additionYou're right the first plus is a binary operator - otherwise the "a" would be left stranded: unconnected to the rest of the expression.
    In trying to figure out why the plus is the first operator (first in order of operation I mean, not leftmost) it might be helpful to bear in mind: With binary operations (and other places) Java evaluates things left to right. The left hand operand will be completely evaluated before work starts on the right hand operand.
    This is in addition to operator precedence and parentheses.
    See if that helps figure out the order.
    jverd is correct this is a dumb question. It has as much to do with expressions and their evaluation as a crossword puzzle has to English literature. Its dumbness is not of your making, but you might like to raise with your teacher that view that expressions like this would be wrong even if they were correct.
    (Finally there isn't really an order completely defined for this expression because some of the subexpressions may - or may not - ever be evaluated.)
    Post back if you can't figure it out. But give your reasons. Ie list step by step how you think the expression would be evaluated.
    [Edit] Except that assignment operators are evaluated right to left!

  • Operator Precedence Doubt

    public class PrecedenceEx {
         public static int m(int i) {
              System.out.print(i + ", "); return i;
         public static void main(String s[]) {
                  m(m(1) - m(2) + m(3) * m(4));
    Output is : 1, 2, 3, 4, 11
    I used operator precedence and got 3, 4, 1, 2, 11
    Why is operator precedence not applicable here.

    Operator precedence is applicable.
    m(1) + m(2) * m(3)
    In the above, precendence does NOT mean that m(2)*m(3) is executed before m(1). Expressions are evaluated left to right. Precedence simply means that the * binds more tightly than the +, so that it's like
    m(1) + ((m(2) * m(3))
    rather than
    (m(1) + m(2)) * m(3).
    So m(1) is evaluated first, then m(2), then m(3), then the results of m(2) * m(3) are computed, and the result of that is added to the m(1) that was computed previously.

  • JAVA operator precedence table is wrong.

    I can not understand why JAVA auto-increment/decrement operator does not follow the rules of Operator Precedence table at http://java.sun.com/docs/books/tutorial/java/nutsandbolts/operators.html
    The precedent order is as follow:
    postfix: expr++ expr--
    unary: ++expr --expr +expr -expr ~ !
    multiplicative: * / %
    From the above we know that x++/x-- is higher then ++x/--x and multiplicative is the lower then both.
    I tested the following in JAVA:
    int y,x = 2;
    y = --x * x++;
    System.out.println(x); //Output is 1.
    Why?
    Theoretically, x++ must be performed before --x, finally then the multiplication (*) and the answer should be
    x++ value=2, stored variable=3
    --x value=2, stored variable=2
    Therefore 2 * 2 = 4.
    Why JAVA is not following the rules that it setup for itself??
    After much research, my conclusion is JAVA Operator Precedence table in java.sun.com website is wrong. The right version should be the same as this website: http://www.sorcon.com/java2/precedence.htm.
    Please run your example code in JAVA before you want to prove me wrong.
    Thank you.

    Hi jsalonen, thank you for your reply. Yes, I see your theory but sorry to say that I don't agree with you. Let's take your example -x++ for our discussion below:
    First let's agree with this:
    x = 2;
    y = -x;
    System.out.println("y = " + y); // y = -2
    System.out.println("x = " + x); // x = 2
    From the above, we can see that by using the negation operator doesn't mean that we have changed the value of x variable. The system just assigns the value of x to the expression but still keeping the value of variable x. That's why we got the output above, agree?
    Now, let's evaluate your example:
    int y, x = 2;
    y = -x++;
    System.out.println("y = " + y); // -2
    System.out.println("x = " + x); // 3
    Hence below is the sequence of process:
    1. -x is evaluated first. Value in variable x is assigned to the expression. At this point the value of x is 2 and this value get negated. However the variable x still storing 2.
    2. Now x++ get evaluated, since this is a postfix increment operator, the value will get assigned first then increase. However x is already assigned, we can not assign it twice, just like if you perform x++ first, you have assigned x then increase and you didn't assign it again for the negation operator. If you did, x would be 3 and get negated to -3. Note that system also cannot perform 2++ because 2 is not a variable. Therefore it is logical to say that x is assigned to the expression and got negated by negation operator then increase the varaible x by 1. So here we increase the value of x by 1 and the result is 3. Therefore variable x is storing 3.
    Now, try the follwing
    x = 2;
    y = -x + x++;
    What is the value of x after -x? It's 2. Remember 2 is assign back to expression but x still retained the original value. If not we would expect x++ to be (-2)++, right?
    But see the output for yourself:
    System.out.println("y = " + y); // 0
    System.out.println("x = " + x); // 3
    As for the subexpression theory, sorry to say that I don't agree with you as well. See the expression below:
    y = -x + x++;
    We can identify that there are 4 operators in this statement, right? (assignment operator, negation operator, addition operator and increment operator)
    since JAVA has defined all the operators in the table and already given each of them a priory and associativity, I don't see any subexpression here. If yes why didn't they mention about subexpression rule in the table? Shouldn't that be defined explicitly so that it doesn't confuse people?
    In conclusion, I still think that JAVA need to correct the operators precedence table at http://java.sun.com/docs/books/tutorial/java/nutsandbolts/operators.html so that they don't confused people for another 10 years. :) Moreover the table is not complete because it did not include . and [ ] and (params) operators.

  • Since upgrade to IOS 10.9 and associated iTunes 11.1.3, I can no longer WiFi sync iPad (IOS 7.0.3) nor iPhone (IOS 6.1.3).  USB connection is required.  Formerly I could sync both devices without locating them physically (not necessarily charging).

    Since upgrade to OS 10.9 and associated iTunes 11.1.3, I can no longer WiFi sync iPad (IOS 7.0.3) nor iPhone (IOS 6.1.3).  USB connection is required.  Formerly I could sync both devices without locating them physically (not necessarily charging).  I have restarted both devices, turned off and on "Sync with this iPad/iPhone over WIFI" and restarted WiFi.  WiFi is operating (iPad has no SIM).  What next?

    I'm also affected by this bug in exactly the same way as you.
    Some users have had success by closing iTunes, enetering (on OS 10.9) settings --> network --> edit locations, then create a new location with the same wifi/network settings. Then restarting iTunes.
    Others have had some success by editing settings --> iCloud --> de-selecting keychain
    neither of these fixes have worked for me.
    It appears that the iPad can "see" iTunes running on my iMac because when I open settings --> general --> 'iTunes wifi sync', "sync now" is greyed out if iTunes is not running. When iTunes is started, "sync now" is enabled but just doesn't work. Nor does the iPad appear in iTunes.

  • Difference between AP Operational Status and Registered Controller

    When reviewing the AP Details page in Prime there are two fields I'm not sure what they mean specifically:
    1) Operational Status - Registered
    2) Registered Controller - Not Associated
    Any clarity or document references would be greatly appreciated.           

    This is in CPI viewing the AP Details tab.
    The only valid values for Operational Status are Registered/Not Registered.
    The only valid values for Registered Controller are Associated/Not Associated
    The IP address is not a valid input.
    It is still unclear to me what the specific and fuctional differences and impacts are between Operational Status and
    Registered Controller? How do the values of each impact the client device?
    Thank You.

  • (Error in documentation?) Math operator precedence problem

    Hello,
    I apologize in advance, while I do know programming (I'm a PHP and Perl programmer) I'm fairly new to Java so this may well be a silly question, but that's why I am here. I hope you'll show me where my error is so I can finally set this to rest before it drives me mad :)
    (Also, I hope I'm posting this in the right forum?)
    So, I am taking a Java class, and the question in the homework related to operand precendence. When dealing with multiplication, division and addition, things were fine, the documentation is clear and it also makes sense math-wise (multiplication comes before addition, etc etc).
    However, we got this exercise to solve:
    If u=2, v=3, w=5, x=7 and y=11, find the value assuming int variables:
    u++ / v+u++ *w
    Now, according to the operator precedence table (http://docs.oracle.com/javase/tutorial/java/nutsandbolts/operators.html) the unary operator u++ comes first, before multiplication, division and addition.
    This would mean I could rewrite the exercise as:
    ((u+1)/v) + ((u+1)*w) = (3/3) + (4*5) = 1+20 = 21
    However, if I run this in Java, the result I get is 15.
    I tried breaking up the result for the two values in the Java code, so I could see where the problem is with my calculation.
    For
    System.out.println(u++ /v);
    I get 0
    For
    System.out.println("u++ *w");
    I get 15
    My professor suggested I attempt to change the values from int to float, so I can see if the division came out to be something illogical. I did so, and now I get:
    For
    System.out.println(u++ /v);
    I get 0.66667
    For
    System.out.println("u++ *w");
    I get 15.0000
    Which means that for the first operation (the division) the division happens on 2/3 (which is 0.6667) and only afterwards the u value is increased. That is, the u++ operation is done after the division, not before. The same happens with the multiplication; when that is carried out, the value of u is now 3 (after it was raised by one in the previous operation) and the first to be carried out is the multiplication (3*5=15) and only then the u++.
    That is entirely against the documentation.
    This is the script I wrote to test the issue:
    public class MathTest {
         public static void main (String [] args) {
              float u=2, v=3, w=5, x=7, y=11;
              System.out.println("Initial value for 'u': " + u);
              float tmp1 = u++ /v;
              System.out.println("u++ /v = " + tmp1);
              System.out.println("First ++ value for 'u': " + u);
              float tmp2 = u++ *w;
              System.out.println("u++ *w= " + tmp2);
              System.out.println("Second ++ value for 'u': " + u);
              System.out.println(tmp1+tmp2);
    The output:
    Initial value for 'u': 2.0
    u++ /v = 1.0
    First ++ value for 'u': 3.0
    u++ *w= 20.0
    Second ++ value for 'u': 4.0
    21.0
    Clearly, the ++ operation is done after the division and after the multiplication.
    Am I missing something here? Is the documentation wrong, or have I missed something obvious? This is driving me crazy!
    Thanks in advance,
    Mori

    >
    The fact that u++ is evaluated but in the calculation itself the "previously stored" value of u is used is completely confusing.
    >
    Yes it can be confusing - and no one is claiming otherwise. Here are some more thread links from other users about the same issue.
    Re: Code Behavior is different in C and Java.
    Re: diffcult to understand expression computaion having operator such as i++
    Operator Precedence for Increment Operator
    >
    So, when they explain that ++ has a higher precedence, the natural thing to consider is that you "do that first" and then do the rest.
    >
    And, as you have discovered, that would be wrong and, to a large degree, is the nut of the issue.
    What you just said illustrates the difference between 'precedence' and 'evaluation order'. Precedence determines which operators are evaluated first. Evaluation order determines the order that the 'operands' of those operators are evaluated. Those are two different, but related, things.
    See Chapter 15 Expressions
    >
    This chapter specifies the meanings of expressions and the rules for their evaluation.
    >
    Sections in the chapter specify the requirements - note the word 'guarantees' in the quoted text - see 15.7.1
    Also read carefully section 15.7.2
    >
    15.7. Evaluation Order
    The Java programming language guarantees that the operands of operators appear to be evaluated in a specific evaluation order, namely, from left to right.
    15.7.1. Evaluate Left-Hand Operand First
    The left-hand operand of a binary operator appears to be fully evaluated before any part of the right-hand operand is evaluated.
    If the operator is a compound-assignment operator (§15.26.2), then evaluation of
    the left-hand operand includes both remembering the variable that the left-hand
    operand denotes and fetching and saving that variable's value for use in the implied
    binary operation.
    15.7.2. Evaluate Operands before Operation
    The Java programming language guarantees that every operand of an operator (except the conditional operators &&, ||, and ? appears to be fully evaluated before any part of the operation itself is performed.
    15.7.3. Evaluation Respects Parentheses and Precedence
    The Java programming language respects the order of evaluation indicated explicitly by parentheses and implicitly by operator precedence.
    >
    So when there are multiple operators in an expression 'precedence' determines which is evaluated first. And, the chart in your link shows 'postfix' is at the top of the list.
    But, as the quote from the java language spec shows, the result of 'postfix' is the ORIGINAL value before incrementation. If it makes it easier for then consider that this 'original' value is saved on the stack or a temp variable for use in the calculation for that operand.
    Then the evalution order determines how the calculation proceeds.
    It may help to look at a different, simpler, but still confusing example. What should the value of 'test' be in this example?
    i = 0;
    test = i++; The value of 'test' will be zero. The value of i++ is the 'original' value before incrementing and that 'original' value is assigned to 'test'.
    At the risk of further confusion here are the actual JVM instructions executed for your example. I just used
    javap -c -l Test1to disassemble this. I manually added the actual source code so you can try to follow this
            int u = 2;
       4:iconst_2       
       5:istore  5
            int v = 3;
       7:iconst_3       
       8:istore          6
            int w = 5;
      10:iconst_5       
      11:istore          7
            int z;
            z = z = u++ / v + u++ * w;
       13:  iload   5
       15:  iinc    5, 1
       18:  iload   6
       20:  idiv
       21:  iload   5
       23:  iinc    5, 1
       26:  iload   7
       28:  imul
       29:  iadd
       30:  dup
       31:  istore  8
       33:  istore  8The Java Virtual Machine Specification has all of the JVM instructions and what they do.
    http://docs.oracle.com/javase/specs/jvms/se7/jvms7.pdf
    Your assignment to z and formula starts with line 13: above
    13: iload 5 - 'Load int from local variable' page 466
    15: iinc 5, 1 - 'Increment local variable by constant' page 465
    18: iload 6 - another load
    20: idiv - do the division page
    21: iload 5 - load variable 5 again
    23: iinc 5, 1 - inc variable 5 again
    26: iload 7 - load variable 7
    28: imul - do the multiply
    29: iadd - do the addition
    30: dup - duplicate the top stack value and put it on the stack
    31: istore 8 - store the duplicated top stack value
    33: istore 8 - store the original top stack value
    Note the description of 'iload'
    >
    The value of the local variable at index
    is pushed onto the operand stack.
    >
    IMPORTANT - now note the description of 'iinc'
    >
    The value const is first sign-extended to an int, and then
    the local variable at index is incremented by that amount.
    >
    The 'iload' loads the ORIGINAL value of the variable and saves it on the stack.
    Then the 'iinc' increments the VARIABLE value - it DOES NOT increment the ORIGINAL value which is now on the stack.
    Now note the description of 'idiv'
    >
    The values are popped
    from the operand stack. The int result is the value of the Java
    programming language expression value1 / value2. The result is
    pushed onto the operand stack.
    >
    The two values on the stack include the ORIGINAL value of the variable - not the incremented value.
    The above three instructions explain the result you are seeing. For postfix the value is loaded onto the stack and then the variable itself (not the loaded original value) is incremented.
    Then you can see what this line does
      21:  iload   5 - load variable 5 againIt loads the variable again. This IS the incremented value. It was incremented by the 'iinc' on line 15 that I discussed above.
    Sorry to get so detailed but this question seems to come up a lot and maybe now you have enough information and doc links to explore this to any level of detail that you want.

  • HT1386 I just reinstalled my windows operating system and decided to put on windows 8.  After loading all of my music back into a freshly installed itunes, my 4th gen ipod is not recognized by itunes.  My 1st gen ipod nano works with no problem.  Help!

    reinstalled my windows operating system and decided to put on windows 8.  After loading all of my music back into a freshly installed itunes, my 4th gen ipod is not recognized by itunes.  My 1st gen ipod nano works with no problem.  I can eliminate any problems with the cable and connection.
    I've stopped and started the service, and also have performed cold reboots.
    Nothing seems to have helped the situation.
    Help!

    See:
    iOS: Device not recognized in iTunes for Windows
    I would start with
    Removing and reinstalling iTunes, QuickTime, and other software components for Windows Vista or Windows 7
    iTunes for Windows: Device Sync Tests
    Have you tried on another computer to help determine if you have a computer or iPod problem?
    The iPod Classic uses different drivers than the Nano

  • I have an iphone6. I am unsure whether to go from 8.1.3 operating system and switch to  ICloud Drive or not?  Has anyone done this?  Is it awesome?  I need to be able to access my resume from phone. I think this will help me achieve this.am i right?

    I have an iphone6. I am unsure whether to go from 8.1.3 operating system and switch to  ICloud Drive or not?  Has anyone done this?  Is it awesome?  I need to be able to access my resume from phone. I think this will help me achieve this?  Am i right?  Is there any body out there right now that could help me?  I'm thinking about going from 8.1.3 to I guess yosemite?  Or is that for Mac computers?  I don't understand the language entirely on the help page.   Anyone's straight forward and easy stepped advice would be much appreciated.  I'm so frustrated and I need a job so badly!  Drowning in debt.  Any help appreciated!
    Thanks,
    A

    You're a Windows user, correct? If so, read here:
    http://support.apple.com/kb/DL1455

  • I updated my IPhone 3GS to the new 5.1 operating system and have since had a range of problems with not only my phone but also my IPad.

    I updated my IPhone 3GS to the new 5.1 operating system and have since had a range of problems with not only my phone but also my IPad.
    Programs (Safari, mail, messages) keep crashing, mail will not delete properly (some will keep popping into my inbox again for no reason!!!), slow, settings lock up etc. etc.
    This only seemed to become an issue once I updated to ios 5.1 and funnily also affected my Ipad even though i hadn't updated the software yet. I have since updated the software on my ipad thinking it might help too but that only made things worse!! So I am not sure if it's an ICloud issue, but when i try to disable ICloud my devices lock up as well.
    The battery life is also shocking!!
    I have hard reset both devices, restored both devices, reset the setting and tried a whole host of other suggestions (like closing background programs) on this forum buit nothing works and i am tearing my hair out.
    I looked in the phone and ipad log and there do seem to be low memory reports though i don't know why these are occuring now when they never have before??
    I don't know if I can restore the old operating system (If I can please let me know how). The phone or ipad are not jailbroken.

    but you should have a backup in itunes.
    Every time you sync your iOS device iTunes creates a backup. go check if its there, iTunes Preferences >Devices. and there you should see if you have a backup, and in case from which date the backup is.
    And ofcourse you can get your icloud data back by just logging in with your Appleid under icloud in settings on the iphone.
    But anyway, if the iPhone works when you restor it as new: try adding your backup, and see if the issue comes back. And experiment with your backup and try to work out what is causing the issue, my guess is that its some app!   Good Luck!

  • Verify operation failed and Runtime Error While using Adobe Reader 10.1.2

    We have installed Adobe reader 10.1.2 on Windows Servers 2008 and user are accessing its using Citrix.When users open PDF files they are getting message "Verify Operation Failed" and also getting error "Runtime Error"
    even on one server we updated the version to 10.1.3 but still they are getting same error.
    Pdf files open up but after multiple attempt..
    Error are provided below

    Hi, I have been using Citrix on Server 2008 for quite soemtime. And have not seen any such issues with Reader 10.1.2 and 10.1.3
    Can you provide the event viewer log ? Also is the same issue seen while opening PDF in the Citrix Server ? Or it is mainly seen while Citrix Users accessing the published Reader app via Citrix Web URL ?

  • I have Windows 7 Operating system and an HP 6500 A Plus printer.  My iPad no longer prints wirelessly. An error message says the printer is offline.  Suggestions

    I have Windows 7 Operating system and an HP 6500 A Plus printer.  My iPad no longer prints wirelessly. An error message says the printer is offline.  Suggestions?

    1. Turn off router, printer and iPad
    2. Turn on router and wait 30 seconds
    3. Turn on printer and wait 30 seconds
    4. Turn on iPad and test printing

  • Premiere CS5 - Project Monitor playback is jerky after resintall of operating system and CS5

    PROBLEM: Premiere CS5 - Project Monitor playback is jerky
    This had NOT been an issue prior to reinstalling the operating system and all software.  I have read numerous articles on the forums and have tried everything I can find...with no results.
    STEPS TAKEN TO RESOLVE THE PROBLEM:
    I have scoured the articles here http://www.adobe.com/cfusion/search/index.cfm?loc=en_us&term=choppy%20video&cat=support&pr oduct=premierepro and others at Cretive Cow
    I have installed all updates for CS5 Master Collection, immediately following a fresh install of the operating system and SC5 Master Collection.
    I have ensured that sequence settings match resolution and frame rates of footage - the problem persists.
    I have tested by importing both standard def AVI files created from tape and high def SONY MP4 files - the problem persists.
    I have ensured the latest Video drivers are installed (clean installation selected, so that the Windows default would be removed) - the problem persists.
    I have tried the 3D settings in NVIDIA control panel | Program Settings tab... selected Adobe Premiere Pro from the drop down menu | and chaged 'Multi-display/mixed-GPU acceleration from the value of 'Multiple Display performance' to the value of 'single display performance'; although, I ran two monitors before using this latest NVIDIA video driver and I didn't experience this jerky footage issue - the problem persisted after affecting that change; so, I switched it back. 
    Since I have 96 GB of RAM, I don't use a pagefile.  A zero MB page file is the same setting I had prior to rebuilding the C:  Regardless of whether I have a pagefile or not, the problem persists.
    I have tried creating a fresh user profile, where the user profile is created on the C: drive by default; and, where I left it there on C: to test for the jerky playback in a new PrPR project  - the problem persists.
    Regarding the C: (system drive) and why I reinstalled everything, it had become unstable and was locking up.  I ran DISK ERROR CHECKING with the FIX parameter and the system was still locking up on me.  Keep in mind that the System drive is a solid state drive.  Anyhow, I had no choice but to dive in and reinstall everything.  I wiped the system partition of the SSD using quick format and started installing the operating system.  Now, I've read the CLAIM that this cuases performance issues; but, the only place I see issues is in the video monitor playback in PrPr.  Everything else - Office applications...printing...browsing the Internet...works just fine, everything is responsive, whereas, I couldn't do ANYTHING with it before.
    SYSTEM CONFIGURATION:
    The Operating system and all software is installed on C:
    All data files and most profile related folders are stored on D:
    C:\ (one Intel Solid State Drive - SYSTEM DRIVE)  Used Space: 57.5 GB  Free Space: 388 GB
    D:\ (four Western Digital 2TB drives in an on-board INTEL hardware RAID5 array & hotswapable backplane) used space: 1.28 TB Free space: 4.16TB
    Adobe Premiere Pro CS5 VERSION: 5.0.3 (005 (MC: 218798))
    Operating System    Microsoft Windows 7 Ultimate Version    6.1.7601 Service Pack 1 Build 7601
    System Manufacturer    Intel Corporation
    System Model    S5520SC
    System Type    x64-based PC
    Video    NVIDIA Quadro FX 4800 driver v.320.78
    Display        Dell 27" LCD (DisplayPort)
    Display        Dell 27" LCD (DisplayPort)
    Processor    Intel(R) Xeon(R) CPU           X5680  @ 3.33GHz, 3326 Mhz, 6 Core(s), 12 Logical Processor(s)
    Processor    Intel(R) Xeon(R) CPU           X5680  @ 3.33GHz, 3326 Mhz, 6 Core(s), 12 Logical Processor(s)
    Installed Physical Memory (RAM)    96.0 GB
    Page File Space    0 bytes
    PREMIERE PRO CS5 SETTINGS:
    Monitor PLAYBACK RESOLUTION: Full
    Monitor PAUSE RESOLUTION: Full
    (regardless of this setting, the problem persists)
    PREFERENCES:
    MEMORY:
    Installed RAM: 95.9 GB
    RAM reserved for other applications: 10 GB
    Optimize rendering for: Performance
    (Changing this setting to 'memory' does not resolve the problem)
    MEDIA:
    Media Cache Files
    X - Save Media Cached files next to originals when possible
    LOCATION: D:\Users...\AppData\Roaming\Adobe\Common
    (User Profile folders were relocated to D:\ from within the properties of each folder's 'LOCATION' tab.  This is the same configureation I had prior to rebuilding the C:\drive.  Testing under a new profile where it's allowed to stay on teh system drive does NOT resolve the problem.)
    Media Cache Database
    LOCATION: D:\Users...\AppData\Roaming\Adobe\Common
    PROJECT SETTINGS:
    Scratch Disks
    Path: D:\Users...\My Documents\
    General
    Video Rendering and Playback: Mercury Playback Engine GPU Acceleration
    (Setting Viideo Rendering and Playback to 'Sofware' does not resolve the problem)
    If any of y'all have any other suggestions, I'm all ears.
    Thank you.

    I'VE RESOLVED THE PROBLEM!
    PREFACE:
    OK, I am hoping that through this week-long Operating-System-and-Software-reinatalltion excerise of mine, I have revealed something that everyone -- whom have been cursing Adobe over -- can apply to their systems to resolve this jerky video problem within PremierePro CS5 (and quite possibly other versions, too). 
    If you've read my post above, you've seen all the steps I've taken to resolve the problem.  I've read many posts, some of which have mentioned  hardware upgrade / opitmization steps that one may take to enhance performance, and hopefully resolve the problem.  I've read where people have taken these steps and have still experienced the problem...and then they curse Adobe.  Fer-shame, fer-shame, fer-shame! (nod to Gomer Pyle). 
    In my case, I knew it wasn't an Adobe issue, as it had worked flawlessly before; and, it wouldn't require a hardware upgrade or reconfigureation, as my system is completely maxed out with two processors, a system drive and a hardware RAID5 array, a CUDA-suported nVIDIA 4800 FX card, and 96 GB of RAM.  bla bla bla, puke...whatever.  Bottom line is this:
    It's not a software issue.  It's not and Adobe issue; and Gawd no!  It's NOT a PC vs. Mac issue!  HA HA.  The software had worked swimmingly well prior to the reinstallation / 'lobotomy' I perfomed on the system drive.
    SOLUTION FOR ME:
    Download and install the updated drivers for the motherboard.  Mine is an Intel Workstation Board S5520SC.  Intel has an INTEL DRIVER UPDATE UTILITY which automatically scaned my Intel system and identified drivers which needed updating.  A very handy, time-saving tool!!!  Here's the URL: http://www.intel.com/p/en_US/support/detect?iid=dc_iduu
    The scan revealed two Intel drivers needing an update:
    Intel Chipset
    Wired Networking
    and one non-intel driver:
    Creative Labs Sound Blaster X-fi
    I downloaded and installed these three drivers, rebooted, and tested PremierePro, and was extatic to find this resolved the problem.
    If you have a motherboard from another manufacturer, then you may want to navigate over to their wibsite to locate chipset and other updated drivers for your motherboard. 
    ROOT CAUSE:
    While Microsoft Windows 7 Ultimate was able to install certain default drivers during the Operating System installation (keeping in mind that this was done on an Intel Solid State Drive that I formatted using Quick Format) these default chipset drivers apparently weren't current and were ultimately the root cuase of the jerky video playback within PremierePro CS5.
    Peace

Maybe you are looking for