Роберт прав:
digitAt: IDX
извлекает байт, начиная с индекса 1 (как обычно) для младшего байта.
digitLength
дает количество цифр.
Итак, чтобы перечислить использование:
n digitLength downTo:1 do:[:idx | do something with (n digitAt:idx)]
Я не уверен, существует ли соглашение о том, что возвращается для больших отрицательных чисел, потому что Smalltalks, как правило, используют представление значения знака для LargeInts, а дополнение 2 для SmallInts. Так что вам, возможно, придется проверить это.
Предостережение: для меня digitAt: немного плохое имя - я склонен ассоциировать его с "десятичной цифрой-at", что вводит в заблуждение.