$23 quadrillion cigarette mystery solved

An internet consultant says he’s solved the mystery of how a New Hampshire man was charged $23 quadrillion dollars for cigarettes.

Josh Muszynski hit the headlines after paying for the cigarettes at a gas station on Monday using a prepaid Visa card. He was somewhat surprised when he next logged into his online account and found the purchase had been charged at $23,148,855,308,184,500.

Oh, and another $15 for going overdrawn.

Fortunately, his issuing bank, Bank of America, has refunded the money and the fee, though there was no clear explanation for how it had happened.

Visa later announced that the problem could be widespread with as many as 13,000 transactions coming up with the same unlikely charge. It says it’s now fixed the problem but isn’t saying what caused it. That soon became the question of the week as computer analysts tried to figure out what was so significant about the number.

The race appears to have been won by Frank Wales (pictured right) of British firm Limitless Innovations. Writing on his personal blog he noted that he thought to represent the number in base 16 (or hexadecimal). That’s a system which has 16 units rather than the traditional 10 we use in our daily lives, or the two used in binary.

The hexadecimal system is commonly used in computer systems as it is easily compatible with binary (2 doubles to 4, then to 8, then to 16), but is large enough to represent bytes of computer data.

Once you add on the cents and take out the commas, $23,148,855,308,184,500 becomes 2314885530818450000. Convert that to hexadecimal and you get 2020202020201250.

Wales’ theory is that the last four digits of that number represent $12.50 – which sounds just about right if Musynski bought two pack of cigarettes.

And the string of 20s at the start? Well, as you’ll know if you’ve ever mistakenly typed a space in a website address, many computer systems automatically convert spaces into the number 20.

If Wales’s theory is correct, the problem appears to be that somewhere along the processing line, somebody created a system with too much space in a database field and didn’t set the application to automatically remove any spaces that a user typed in to make it fit. (You may recognize this problem from websites which won’t let you type spaces when you input your credit card number.)

If this is the explanation, and the problem was indeed triggered by people spending $12.50, it’s not entirely clear why that number alone should be so problematic.