What happens when millis() overflows?

I am confused. I heard that the millis() function will roll over after 50 days. So I look at the "BlinkWithoutDelay" LED example in under the "Digital" category and this is what I think.

The program will run normally for 50 days, because "millis() - previousMillis" will always be positive. But what happens when millis() suddenly returns 0, and the expression "millis() - previousMillis" returns a giant negative number? Does it just continue to be a negative number for 50 days?

I am pretty sure this horse has been beaten before. If you Ctrl-F on this site:Loading... for "overflow" it says that when millis() overflows, the expression will just trigger again and not wait 50 days like I'm thinking.

Does this help...
http://www.arduino.cc/cgi-bin/yabb2/YaBB.pl?num=1260223964/all

Yes. That is the exact explanation that I wanted. I searched using google on this site specifically but I didn't find anything spot-on like that. Thank you.

I searched using google on this site specifically but I didn't find anything spot-on like that.

Not surprising. While there has been a great deal of discussion about millis and rollover, the vast majority of the discussion is of the form: "do it this way and you'll be fine".

I was only able to find that thread because... 1. I contributed to it. 2. I remembered referring to twos-complement arithmetic as a "wheel of fortune".

Thank you.

You are welcome.