Exercices de convertion dans les bases

Tido -  
 melek -
Bonjour,
Moi c'est Tido et je souhaite avoir des exercices de convertion dans les differentes bases tel que :

decimale en binaire,octale ,hexadecimale
puis faire un melange de convertion partant de n'importe quelle bases
Configuration: Windows XP
Internet Explorer 7.0

3 réponses

  1. othanga
     
    salut,

    pas de réponse, pas de correction

    a+
    1
  2. galilo
     
    voila un programme de conversion d'une base B1 à une Base B2, ecrit en Pascal
    program conversion;
    uses wincrt;
    var
    n1,n2:string;
    b1,b2:integer;
    procedure saisie ( var b1,b2:integer; var n1:string);
    var
    test:boolean;
    i,d,e:integer;
    x:char;
    begin
    repeat
    writeln('b1:');
    readln(b1);
    writeln('b2');
    readln(b2);
    until ( b1 in [2..16])and (b2 in[2..16]);
    repeat
    write('donnez n: ');
    readln(n1);
    i:=1;
    test:=true;
    if b1<=10 then
    repeat
    n1[i]:=upcase(n1[i]);
    val(n1[i],d,e);
    if e<>0 then test:=false
    else
    begin
    if not(d in [0..b1-1] ) then
    test:=false
    else i:=i+1;
    end;
    until (test=false)or (i>length (n1))
    else
    repeat
    n1[i]:=upcase(n1[i]);
    x:=n1[i];
    if x > chr(b1+55) then test:=false
    else
    i:=i+1;
    until (test=false) or (i>length(n1));
    until (test);
    end;
    function puiss(a,b:integer):integer;
    var k,p:integer;
    begin
    p:=1;
    for k:=1 to b do
    p:= p*a;
    puiss:=p;
    end;
    procedure convertir(n1:string;b1,b2:integer);
    var n,s,d,e:integer;
    res:string;
    function b1_b10(n1:string):integer;
    var i,j:integer;
    begin
    s:=0;
    j:= length(n1)-1;
    for i:= 1 to length(n1) do
    begin
    val(n1[i],d,e);
    if e<>0 then d:=ord(n1[i])-55;
    s:=s+ (d * puiss(b1,j));
    j:=j-1;
    end;
    b1_b10:=s;
    end;
    function b10_b2(n,b2:integer):string;
    var r:integer;
    ch,c:string;
    begin
    ch:='';
    repeat
    r:=n mod b2;
    n:= n div b2 ;
    if r <10 then str(r,c)
    else begin
    r:=r+55;
    c:=chr(r);
    end;
    ch:=c+ch;
    until n=0;
    b10_b2:=ch;
    end;
    begin
    n:=b1_b10(n1);
    res:=b10_b2(n,b2);
    write('(',n1,')',b1,' = ','(',res,')',b2);
    end;
    begin
    saisie(b1,b2,n1);
    convertir(n1,b1,b2);
    end.
    1
    1. melek
       
      très bonne méthode ;)
      0
  3. othanga
     
    Hello

    tu vas donc convertir 49152 en base 2 (c'est un peu long, certes)
    le résultat sera converti en hexa

    ensuite, tu vas converir 16383 en octal
    le résultat sera converti en binaire

    ensuite, tu vérifies tout tes résultats avec la calculatrice windows (en mode Scientifique)
    ou tu postes tes résultats dans cette conversation dans un délai de 24h.
    0