[Back to MATH SWAG index] [Back to Main SWAG index] [Original]

    (*
    From: TIM MCKAY
    Subj: RE: COVERTING TO BASE 36

     JF> Can someone please show me how I would convert a base 10 number to
     JF> base 36? (The one used by RIP)
    *)

    program convertbase;

      const B: integer = 36;       { B = the base to convert to }
              S: string  = '';       { S = the string representation of the
                                         result }
                                                 done: boolean = false;

      var   X, I, F: integer;      { X = the original base 10 number
                                     I = the integer portion of the result
                                     F = the fractional portion of the
                                         result }
                                                 R: real;               { R = the
    intermediate real result }

      begin
        readln(X);                 { Get original base 10 number }
        R:=X;
        while (not done) do begin  { This loop continues to divide the     }
              R:= R/B;                 { result by the base until it reaches 0 }
              I:= int (R);             { The integer portion of the result is  }
              R:= I;                   { reassigned to R                    }
              F:= frac(R) * B;         { The fractional portion is converted to}
              if f<10 then begin       { an integer remainder of the original  }
                S:=chr(f+$30) + S;     { base and converted to a character to  }
              end else begin           { be added to the string representation }
             S:=chr(f+$37) + S;
          end;
          if R<=0 then done:=true; { When R reaches 0 then you're done     }
              end;
        writeln(S);
      end.

[Back to MATH SWAG index] [Back to Main SWAG index] [Original]