Chris Lomont and the Excel formatting bug

Wednesday 7 November 2007This is over 15 years old. Be careful.

In September, a bug was reported in Excel 2007 which makes 850×77.1 display as 100,000 instead of the correct 65,535. Many people theorized about the cause. Chris Lomont did something different: he analyzed the behavior of the code in depth, and found the problem, producing a 25-page paper with code and diagrams: An Analysis of the Excel 2007 “65535” Bug. This is an impressive piece of work, and is an instructive example of the difference between what problems appear to be, and what they actually are.

It also includes this paragraph in the conclusion:

A final comment to lawyers confused about fair-use issues, reverse-engineering for interoperability, First Amendment and DMCA issues, and the like. Be sure to do your homework before you contact me. It will save us both time and one of us embarrassment.

Chris has a lot more than that, too. His site has tons of math-meets-computers goodness, including graphics code, puzzles, screen savers, floating point tricks, LED hacking, superball pranks, and so on. Good fun.


I was really confused when I read your post in Google Reader and saw "...which makes 85077.1 display as 100,000 instead of the correct 65,535." I guess something in your feed generator stripped out the multiplication symbol or Google Reader munged it. Either way, very interesting post.
The rss.xml file doesn't contain the multiplication symbol. wget then hd gives:

00000910 20 6d 61 6b 65 73 20 38 35 30 37 37 2e 31 20 64 | makes 85077.1 d|
Interesting. I'm not sure why it was missing, but I've been meaning to get rid of the excerpts feed anyway. Now the rss.xml feed redirects to rssfull.xml, which has full posts, including the times symbol.

Add a comment:

Ignore this:
Leave this empty:
Name is required. Either email or web are required. Email won't be displayed and I won't spam you. Your web site won't be indexed by search engines.
Don't put anything here:
Leave this empty:
Comment text is Markdown.