Нет встроенной базы преобразования!
$&2%v2/;FL:vK2*;OS#
Попробуйте онлайн!
У Pushy есть два стека, и этот ответ широко использует это.
Эта программа состоит из двух частей. Во-первых, $&2%v2/;F
преобразует число в обратное двоичное представление:
\ Implicit: Input is an integer on main stack.
$ ; \ While i != 0:
&2%v \ Put i % 2 on auxiliary stack
2/ \ i = i // 2 (integer division)
F \ Swap stacks (so result is on main stack)
Учитывая пример 10, стеки будут выглядеть следующим образом на каждой итерации:
1: [10]
2: []
1: [5]
2: [0]
1: [2]
2: [0, 1]
1: [1]
2: [0, 1, 0]
1: [0]
2: [0, 1, 0, 1]
Мы можем видеть , что после последней итерации, 0, 1, 0, 1
был создан на втором ярусе - обратные двоичные цифры 10, 0b1010
.
Вторая часть кода L:vK2*;OS#
взята из моего предыдущего ответа, который преобразует двоичный код в десятичный . Используя метод, описанный и объясненный в этом ответе, он преобразует двоичные цифры в стеке в целое число 10 и печатает результат.