Không có chuyển đổi cơ sở dựng sẵn!
$&2%v2/;FL:vK2*;OS#
Hãy thử trực tuyến!
Pushy có hai ngăn xếp, và câu trả lời này sử dụng rộng rãi.
Có hai phần hai chương trình này. Đầu tiên, $&2%v2/;F
chuyển đổi số thành biểu diễn nhị phân ngược của nó:
\ 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)
Cho ví dụ 10, các ngăn xếp sẽ xuất hiện như sau trên mỗi lần lặp:
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]
Chúng ta có thể thấy rằng sau lần lặp cuối cùng, 0, 1, 0, 1
đã được tạo trên ngăn xếp thứ hai - các chữ số nhị phân ngược của 10 , 0b1010
.
Phần thứ hai của mã, L:vK2*;OS#
được lấy từ câu trả lời trước của tôi để chuyển đổi nhị phân thành thập phân . Sử dụng phương thức giải mã và giải thích trong câu trả lời đó, nó chuyển đổi các chữ số nhị phân trên ngăn xếp thành số nguyên 10 cơ sở và in kết quả.