fork(14) download
  1. Program Conversion_b1_b2;
  2. Var
  3. nb, reste : Array [1..50] of 0..15;
  4. b1, b2, n, i, j, err, nb10 : Integer;
  5. nch : String;
  6. Begin
  7. Repeat
  8. Writeln ('Base b1 = ');
  9. Readln (b1);
  10. Writeln ('Base b2 = ');
  11. Readln (b2);
  12. Until (b1 in [2..16]) and (b2 in [2..16]);
  13. Writeln ('Donner le nombre à convertir');
  14. Readln (nch);
  15. n:=Length (nch);
  16. For i:=1 To n Do
  17. If ORD (nch[i]) <65 Then VAL (nch[i], nb[i], err)
  18. Else
  19. nb[i] :=(ORD (nch[i]) - ORD ('A') + 10);
  20. {conversion de la base b1 au décimal}
  21. nb10 :=0;
  22. For i:=1 To n-1 Do nb10:=(nb10+nb[i])*b1;
  23. nb10:=nb10+nb[n];
  24. {conversion de nb10 du décimal à la base b2}
  25. i:=0;
  26. Repeat i:=i+1;
  27. reste[i]:=nb10 mod b2;
  28. nb10:=nb10 div b2;
  29. Until nb10=0;
  30. {affichage du résultat}
  31. For j:=i Downto 1 Do
  32. If reste[j] < 10 Then Write (reste[j])
  33. Else
  34. Writeln (CHR (reste[j]-10 + ORD ('A')));
  35. End.
Success #stdin #stdout 0s 276KB
stdin
10
2
125
stdout
Base b1 = Base b2 = Donner le nombre à convertir
1111101