ЗЫ: Для числа 1 000 000 000 такой ошибка не возникает, отсюда возникает ощущение, что где-то происходит ошибка в приведении типа int к long, НО где это происходит совсем не понятно( Вообще не понимаю откуда появляется отрицательное число (-8 в данном случае)