home *** CD-ROM | disk | FTP | other *** search
/ Liren Large Software Subsidy 9 / 09.iso / e / e032 / 3.ddi / FILES / PRELOAD.PAK / DIGITS.M < prev    next >
Encoding:
Text File  |  1992-07-29  |  1.6 KB  |  55 lines

  1.  
  2. (*
  3. Digits is an obsolete function.  It has been superseded by
  4. IntegerDigits (for integer arguments) and RealDigits (for real arguments).
  5. *)
  6.  
  7. Begin["System`"]
  8.  
  9. Unprotect[Digits]
  10. Digits::usage =
  11. "Digits is an obsolete function, superseded by IntegerDigits and RealDigits.\n
  12. Digits[n] gives a list of the digits of the integer n.
  13. Digits[n, b] gives a list of the digits in base b. Digits[x, b] gives
  14. a list containing a list of digits of the integer part of x, a list
  15. of digits of the fractional part, and the exponent of b."
  16.  
  17. Begin["`Private`"]
  18.  
  19. ToInteger[char_String] :=
  20.     With[{t = ToCharacterCode[char][[1]]},
  21.         If[t < 58, t-48, t-87]
  22.     ]
  23.  
  24. Digits[n_Real,base_:10] := Module[{v,man={},i,exp={"0"}},
  25.     Message[Digits::obsfn, Digits, {IntegerDigits, RealDigits}];
  26.     v = Characters[ToString[InputForm[BaseForm[Abs[n],base]]]];
  27.     If[MemberQ[v,"*"],
  28.         exp = Drop[v,Last[Position[v,"^"]][[1]]];
  29.         v = Take[v,Last[Position[v,"*"]][[1]]-1];
  30.     ];
  31.     If[MemberQ[v,"^"],
  32.         v = Drop[v,Last[Position[v,"^"]][[1]]]];
  33.     If[MemberQ[v,"."],
  34.         i = Last[Position[v,"."]][[1]];
  35.         man = Drop[v,i];
  36.         v = Take[v,i-1];
  37.     ];
  38.     {ToInteger /@ v, 
  39.      ToInteger /@ man, 
  40.      ToExpression[Apply[StringJoin,exp]] }
  41. ]
  42.  
  43. Digits[n_Integer,base_:10] := Module[ {v,man={},i},
  44.     Message[Digits::obsfn, Digits, {IntegerDigits, RealDigits}];
  45.     v = Characters[ToString[InputForm[BaseForm[Abs[n],base]]]];
  46.     If[MemberQ[v,"^"], v = Drop[v,Last[Position[v,"^"]][[1]]]];
  47.     ToInteger /@ v
  48. ]
  49.  
  50. Protect[Digits]
  51. End[]
  52. End[]
  53.  
  54. Null
  55.