I'm trying to work out why I'm getting unexpected values, the second line should be identical to the top line, and the result is the same, but for the life of me, I cannot see what the heck is going on...
Remember integers are 16-bit numbers thus lie in the range -32768 to 32767. You have 1000*150=150000 which is bigger than 32767. Now if you subtract out 65536 (2**16) you get 150000-65536 = 86646. Still too big. Do it again: 86646-65536=18928. Ta da!
If you want to do 32-bit arithmetic to get a 32-bit result:
Serial.println(1000L * 150L);
--
The Quick Shield: breakout all 28 pins to quick-connect terminals