31bit arithmetic

In my quest to have some kind of access to my Outlook/Exchange calendar, I now got a step further, Even two steps, to be precise:

  1. I got all my appointments, including time zone info into iCal. I have these nifty “confirmed”,“canceled” and “tentative” icons in iCal — something I didn’t get yet with GroupCal. Thanks to the wise men up a Microsoft, I could even “copy-paste” the attributes of repeated events 1:1 into my vCalendar file.
  2. I got all my tasks as well into iCal, something I wanted badly, even if I can’t sync them back for the moment.

This last point, however, caused some laughter among me and Ölbaum.

I wanted to know (In my famous script), how many appointments I’m going to convert. When I ran the script, I got some ridiculous big number ( 2147483647 ) – something which simply can not be true.

When I dug into the documentation for the “Count” property on CDO Messages collections, I found this:

The Count property returns the number of AppointmentItem, MeetingItem, or GroupHeader and Message objects in the collection, or »a very large number« if the exact count is not available. Read-only.

This »a very large number« actually struck me. Why the heck couldn’t they just put some value like -1 instead of some “very large number”, I asked myself.

Ölbaum then pointed out that 2^31 – 1 = 2,147,483,647 – the number returned by my script. 31bit arithmetic, it seems: 7FFF FFFF happens to be -1 when you use 31bit arithmetic. Uh … oh.

comments powered by Disqus