Техническая причина
Это ж надо, вбить чиселку для проверки 0xcccc3333, а потом полчаса искать ошибку: на клавиатуре русская и английская "с" находятся на одной клавише и по начертанию неотличимы...А компилятор русскую "с" вовсе не считает за число 12! 

Есть такое устройство простенькое - кардридер. Считыватель магнитных карт. Он эмулирует клавиатуру. Проводишь карточкой и в порт клавиатуры прилетает то, что на карте записано. Записан там номер, слева отсечённый точкой с запятой а справа - вопросительным знаком. Для удобства видимо...
Вчера часа три не мог понять откуда глюки: то программа ловит номер, то нет. Оказалось, что если включён русский язык, то прилетает вместо точки с запятой буква "ж". То есть он АБСОЛЮТНО эмулирует клаву. Маразм...
А вместо вопросительного знака приходила запятая?
Кстати, вы сами делаете их или просто готовые используете? Считыватели карт? Интересно было бы по схемотехнике пообщаться...