Negative base numbers: Difference between revisions

Content added Content deleted
No edit summary
(Added Quackery.)
Line 1,741: Line 1,741:
195
195
Converted back to decimal</pre>
Converted back to decimal</pre>

=={{header|Quackery}}==

<lang Quackery> [ dup dip /mod
over iff
[ negate +
dip 1+ ]
else drop ] is /mod+ ( n n --> n n )

[ over 0 = iff
[ 2drop $ "0" ]
done
temp put
$ "" swap
[ temp share /mod+
digit
rot join swap
dup 0 = until ]
drop
temp release ] is ->negabase$ ( n n --> $ )

[ over $ "0" = iff
[ 2drop 0 ]
done
temp put
0 swap
witheach
[ dip
[ temp share * ]
char->n + ]
temp release ] is negabase$-> ( $ n --> n )

10 dup echo say " -> "
-2 ->negabase$ dup echo$ say " -> "
-2 negabase$-> echo cr
146 dup echo say " -> "
-3 ->negabase$ dup echo$ say " -> "
-3 negabase$-> echo cr
15 dup echo say " -> "
-10 ->negabase$ dup echo$ say " -> "
-10 negabase$-> echo cr</lang>

{{out}}

<pre>10 -> 11110 -> 10
146 -> 21102 -> 146
15 -> 195 -> 15
</pre>


=={{header|Racket}}==
=={{header|Racket}}==