Décimal ( 0 à 63 ) en BCD ( 6bits)

Résolu/Fermé
kxpunisher - 21 mars 2005 à 18:31
 MANDENGUE Serge - 9 mai 2005 à 12:51
Bonjour à tous,

voila jaurai aimer savoir sil y avai une fonction ou procedure
qui me permettrai de convertir un decimal compri entre 0 et 63 ( inclu) en BCD codé 6 ( 0 = 000000 ), dans le la,gage Delphi

Merci par avance

4 réponses

C'est impossible car le BCD demande 4 bits par digits.
Par contre pour passer de "décimal" vers "binaire"...

http://aigespc57.cicrp.jussieu.fr/algo/codage.htm


(PS : creuse toi un peut la tête, sinon essaye ça :
http://www.onfaittesdevoirs.com )
0
Slt er merci pour ta réponse

g trouvé sa sur le ent
jdoi fair une correpondance pour piolter un afficheur lcd graphiqk c pr sa


Original

function DecToRoman(Decimal: Longint): string;
const
  Numbers: array[1..13] of Integer =
    (1, 4, 5, 9, 10, 40, 50, 90, 100,
    400, 500, 900, 1000);
  Romans: array[1..13] of string =
    ('I', 'IV', 'V', 'IX', 'X', 'XL',
    'L', 'XC', 'C', 'CD', 'D', 'CM', 'M');
var
  i: Integer;
begin
  Result := '';
  for i := 13 downto 1 do
    while (Decimal >= Numbers[i]) do
    begin
      Decimal := Decimal - Numbers[i];
      Result  := Result + Romans[i];
    end;
end;


//Example:
//Beispiel:

procedure TForm1.Button1Click(Sender: TObject);
begin
  label1.Caption := DecToRoman(5);
  Label2.Caption := DecToRoman(458);
end;


Modifié exemple:

function LineToBianry(Line: Integer): string;
const
  Lines: array[0..63] of Integer =
    (1, .. 63);

  Binary: array[0..63] of string =
    ('11000000', ..,'11111111');

var
  i: Integer;
begin
  Result := '';

//supplement
if Line>0 then begin
//fin rajout
  for i := 63 downto 1 do
    while (Line >= Lines[i]) do
    begin
      Line := Linel - Binary[i];
      Result  := Result + Binary[i];
LineToBianryValue:=Result;
    end;
end else
LineToBianryValue:='11000000';
end;








//Example:

procedure TForm1.Button1Click(Sender: TObject);
begin
  label1.Caption := LineToBinary(45);
end;





mon code fonctionne je v codé tte les fonction komm ceci

Display on off
Dispay start mline
Set page X
Set Y address
Status read

etc
0
>>jdoi fair une correpondance pour piolter un afficheur lcd graphiqk
D'accord !! Comme ça c'est plus clair ! Ta posé la question à l'envers :°)
En fait tu veux partir de ta base binaire, enfin un entier en mémoire, à deux entiers de 4 bit en mémoire. (voire un entier de 8 bits).
J'ai fait du pascal antant, mais j'ai pas assez pratiqué récemment pour employer ce language sans méchament l'écorcher.
Idée générale :
Pré-conditions :
IF (x<0) OR (x>63) THEN ERROR() ELSE
VAR
  d, u : INTEGER;
BEGIN

Tu cherche la partie décimale :
  d = x DIV 10;

Ensuite la partie entière :
  u = x - d*10;
....
...
..
END;


Et tu disposes dans les 4 bit de poids faibles de chacun des deux entier d et u, de la représentation BCD que tu doit fournir à tes afficheurs... S'il ont bien 4 bits d'entrés chacun ! :D
0
MANDENGUE Serge
9 mai 2005 à 12:51
slu les gars,j'ai besoin d'une aide en algo!!j'aimerais connaître comment écrire le progamme en turbo-pascal qui convertie une valeur décimale en binaire,en octal et en hexadécimal!!de plus ,comment afficher le résultat d'un algo qui affiche les éléments d'1 tableau t1 n'appartenant pas à t2 ou les éléments de ce tableau t2 n'appartenat pas à t1!!merci
0