Saw an article in the news that I thought was amusing: what-it-feels-like-to-owe-27-million-on-your-myki-20150612-ghm1mh
The premise: someone has racked up a bill of $2.7M on their card. How?
They helpfully posted a balance statement:
That number is a bit special. Lets convert it to binary:
268435000 = 1111111111111111111000111000
Hey, look at all those ones? Wonder what happens if we flip all those bits?
0000000000000000000000111000 = 56. ($0.56)
Most likely, some operation in the myki system bit flipped the customer’s credit. In binary, negative numbers are stored with signed binary values – all that means is that the very first character is a 1 for a negative value, and all the 1 and 0 are flipped. The value in the customers card is actually $-0.56, but for some reason, the balance machine is not recognising this as a signed value, and is instead calculating the balance as an unsigned value, where the 1 is part of the number value.
Remember, there are only 10 types of people in this world: those who know binary, and those who don’t. Clearly, Myki are in the latter group. 🙂