Order of evaluation of java expression -


so have arraylists represent integers example num1 = <-1,4,5> represent -145 , num2= <2,3,6> represent 236.

arraylist<integer> num1 = new arraylist<>(arrays.aslist(1,2,9)); arraylist<integer> num2 = new arraylist<>(arrays.aslist(-5,5)); final int sign = num1.get(0) < 0 ^ num2.get(0) < 0 ? -1 : 1; 

so sign supposed determine sign occur multiplying num1 num2 (-145*236 negative number). comparison operators non associative should equivalent expression:

sign = (num1.get(0) < 0 ^ num2.get(0)) && (0 ^ num2.get(0) < 0) ? -1:1; 

whats confusing me why num2.get(0) being xor'ed 0 because not alter num2.get(0) @ all.

also lets num2.get(0) = -2 , num1.get(0) = -3 if evaluated sign we'd sign=-1. because (-3< 0 ^ -2) , (0 ^ -2 < 0)? -1:1; evaluates -1.

but wrong -3*-2 should positive number. missing because know code correct (it's textbook).

num1.get(0) < 0 ^ num2.get(0) < 0 ? -1 : 1 

is evaluated as

((num1.get(0) < 0) ^ (num2.get(0) < 0)) ? -1 : 1 

this determined operator precedence. comparison operators being non-associative has nothing whatsoever.

whats confusing me why num2.get(0) being xor'ed 0

it isn't.


Comments

Popular posts from this blog

ubuntu - PHP script to find files of certain extensions in a directory, returns populated array when run in browser, but empty array when run from terminal -

php - How can i create a user dashboard -

javascript - How to detect toggling of the fullscreen-toolbar in jQuery Mobile? -