Ce code vient rectifier celui de g0belin qui ne fonctionnait pas chez moi.
ce programme est simple et commenté, il s'agit de convertir un nombre 16bit (-de 65536 et non négatif) en sa représentation binaire.
Attention aucun contrôle d'erreur n'est mis en place.
Source / Exemple :
unit Unit1;
interface
uses
Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs,
StdCtrls;
type
TForm1 = class(TForm)
Edit1: TEdit;
Edit2: TEdit;
Button1: TButton;
Label1: TLabel;
Label2: TLabel;
Label3: TLabel;
procedure Button1Click(Sender: TObject);
private
{ Déclarations privées }
public
{ Déclarations publiques }
end;
var
Form1: TForm1;
implementation
{$R *.DFM}
procedure TForm1.Button1Click(Sender: TObject);
var nbr,i:integer;
reste:array[1..16]of integer;
res:string;
begin
for i:=1 to 16 do
reste[i]:=0;
//met les valeurs à zéro car un tableau est oujours initialisé avec des valreurs non nuls.
i:=1;
nbr:=StrToInt(edit1.text);
while nbr <> 0 do
begin
reste[i]:=nbr mod 2;//le reste de la div(0 ou 1)
nbr:=nbr div 2;//le nombre résulant de la div par 2 (128/2=64)
inc(i);//permet le passage à l'indice suivant du tableau RESTE
end;
for i:=16 downto 1 do
res:=res+inttostr(Reste[i]);
//inverse le résultat
edit2.text:=res;
end;
end.
Conclusion :
Un contrôle d'erreur sera peut-etre inclus dans une version ultérieure, 1 merci à gobelin sans qui je ne serai jamais inscrit.
Vous n'êtes pas encore membre ?
inscrivez-vous, c'est gratuit et ça prend moins d'une minute !
Les membres obtiennent plus de réponses que les utilisateurs anonymes.
Le fait d'être membre vous permet d'avoir un suivi détaillé de vos demandes et codes sources.
Le fait d'être membre vous permet d'avoir des options supplémentaires.