22 lines
485 B
Plaintext
22 lines
485 B
Plaintext
EncodeBase[number_,base_]:=Module[{
|
|
out={},
|
|
rem,n=number,b=base
|
|
},
|
|
While[
|
|
n!=0,
|
|
{n,rem}={Floor[Divide[n,b]],Mod[n,b]};
|
|
If[
|
|
rem<0,
|
|
n+=1;
|
|
rem-=b
|
|
];
|
|
PrependTo[out,rem]
|
|
];
|
|
out
|
|
];
|
|
DecodeBase[list_,base_]:=Total[list*base^Range[Length[list]-1,0,-1]];
|
|
|
|
Print[EncodeNegBase[10,-2],"=",DecodeBase[EncodeNegBase[10,-2],-2]];
|
|
Print[EncodeNegBase[146,-3],"=",DecodeBase[EncodeNegBase[146,-3],-3]];
|
|
Print[EncodeNegBase[15,-10],"=",DecodeBase[EncodeNegBase[15,-10],-10]];
|