Я не тестировал это или что-то еще, но я думаю, что это был бы самый простой ответ. Поправь меня, если я ошибаюсь.
Dim num As Integer = 147483647
Dim nDigits As Integer = 1 + Convert.ToInt32(Math.Floor(Math.Log10(num)))
Dim result(nDigits - 1) As Integer
For a As Integer = 1 To nDigits
result(a - 1) = Int(num / (10 ^ (nDigits - a))) Mod 10
Next
** РЕДАКТИРОВАТЬ **
Пересмотрена функция, потому что показатели кажутся очень дорогими.
Private Function Calc(ByVal num As Integer) As Integer()
Dim nDigits As Int64 = 1 + Convert.ToInt64(Math.Floor(Math.Log10(num)))
Dim result(nDigits - 1) As Integer
Dim place As Integer = 1
For a As Integer = 1 To nDigits
result(nDigits - a) = Int(num / place) Mod 10
place = place * 10
Next
Return result
End Function
Это скорость около 775k / sec (для цифр 9 цифр или меньше). Сбросьте максимальные цифры до 7, и он будет на скорости 885k / s. 5 цифр при 1,1 м / с.