Why does an unsigned long constant declaration give the wrong value?