Konvertierung von dezimalen Zahlen in Zahlen zu Basis b
BASIC
FUNCTION d2n$ (n, b)
nstart = n
z$ = »0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ«
conv$ = »)« + MID$(z$, (b + 1), 1)
WHILE (n > 0)
p = n MOD b
conv$ = MID$(z$, (p + 1), 1) + conv$
REM concate z.p an den Ausgabestring
n = ((n - (n MOD b)) / b)
WEND
conv$ = »(« + conv$
convert$ = conv$
END FUNCTION
REXX
D2N: procedure
arg n,b
/* initialisierung */
z='0123456789ABCDEFGHIJKLMNOPQRSTUVW'
conv = ')'||b
nstart = n
DO WHILE n > 0
p = n // b
conv = substr(z,(p+1),1)||conv
n = n % b
END
conv = '('||conv
return conv
Ein Programm, daß die externe Funktion d2n aufruft
call load 'convert.r'
do forever
pull zahl
pull base
call d2n zahl,base
say zahl'='result
end
Perl
sub d2n
{
local $n = $_[0];
local $b = $_[1];
#initialisierung
$z = »0123456789ABCDEFGHIJKLMNOPQRSTUVW«;
$conv = »)« . substr($z, $b, 1);
$nstart = $n;
while ($n > 0)
{
$p = $n % $b;
$conv = substr($z, $p, 1) . $conv;
$n = (($n - ($n % $b)) / $b);
}
$conv = »(« . $conv;
return $conv;
}
Python
def d2n(n,b):
#initialisierung
z='0123456789ABCDEFGHIJKLMNOPQRSTUVW'
conv = ')' + z[b:b+1]
nstart = n
while n > 0:
p = n % b
conv = z[p:p+1] + conv
n = n / b
conv = '(' + conv
return conv
AWK
function convert (n, b) {
nstart = n
z = »0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ«
conv = »)« substr(z, (b + 1), 1)
while (n > 0) {
p = n % b
conv = substr(z, (p + 1), 1) conv
n = ((n - (n % b)) / b)
}
conv = »(« conv
return conv
}
|