Data commit
This commit is contained in:
parent
7387c8f97b
commit
cb5bb5e222
199093 changed files with 3378972 additions and 0 deletions
15
Task/Negative-base-numbers/Zkl/negative-base-numbers-1.zkl
Normal file
15
Task/Negative-base-numbers/Zkl/negative-base-numbers-1.zkl
Normal file
|
|
@ -0,0 +1,15 @@
|
|||
fcn toNBase(n,radix){
|
||||
var [const] cs=[0..9].chain(["a".."z"]).pump(String); //"0123456789abcd..z"
|
||||
_assert_(-37 < radix < -1,"invalid radix");
|
||||
digits:=List();
|
||||
while(n){ reg r;
|
||||
n,r=n.divr(radix); // C compiler semantics
|
||||
if(r<0){ n+=1; r-=radix; }
|
||||
digits.append(r);
|
||||
}
|
||||
digits.reverse().pump(String,cs.get);
|
||||
}
|
||||
|
||||
fcn toInt(str,radix){ // the toInt(radix) method radix is 2..36
|
||||
str.reduce('wrap(s,d,rdx){ s*radix + d.toInt(rdx); },0,radix.abs());
|
||||
}
|
||||
|
|
@ -0,0 +1,6 @@
|
|||
ns:=T( T(10,-2), T(146,-3), T(15,-10), T(107,-16), T(41371458,-36), T(44661,-36) );
|
||||
results:=ns.pump(List,Void.Xplode,toNBase);
|
||||
foreach nb,r in (ns.zip(results)){
|
||||
_,b:=nb;
|
||||
println("%10d.base(%3d) = \"%s\" --> %d".fmt(nb.xplode(),r,toInt(r,b)));
|
||||
}
|
||||
Loading…
Add table
Add a link
Reference in a new issue