Нет, int.Parse("09999")
фактически возвращает 0x0000270F. Ровно 32 бита (потому что именно таков int
), 18 из которых являются ведущими нулями (если быть точным, то один является знаковым битом, можно утверждать, что только 17 ведущих нулей).
Только когда вы конвертируете его обратно в строку, вы получаете «9999», наличие или отсутствие начального нуля в указанной строке контролируется преобразованием обратно в строку.