CONVERTISSEUR 36 FORMATS - DECIMAL - OCTAL - ... : VERSION TOOLS

Signaler
Messages postés
962
Date d'inscription
mercredi 3 avril 2002
Statut
Membre
Dernière intervention
12 septembre 2006
-
Messages postés
4
Date d'inscription
lundi 30 décembre 2002
Statut
Membre
Dernière intervention
10 septembre 2007
-
Cette discussion concerne un article du site. Pour la consulter dans son contexte d'origine, cliquez sur le lien ci-dessous.

https://codes-sources.commentcamarche.net/source/12222-convertisseur-36-formats-decimal-octal-version-tools

Messages postés
4
Date d'inscription
lundi 30 décembre 2002
Statut
Membre
Dernière intervention
10 septembre 2007

Bonjour.

Votre petit programme est très intéressant ...

Pourriez vous ajouter la possiblité pour le code Gray ( ou binaire réfléchi ) ?.

Merci.

Et encore félicitations pour votre travail et votre contribution sur delphifr.
Messages postés
962
Date d'inscription
mercredi 3 avril 2002
Statut
Membre
Dernière intervention
12 septembre 2006
2
Deux petites remarques générales pour commencer :
- n'utilise pas le type byte tant que ce n'est pas strictement utile. Ils occupe de toute façon 4 octects en mémoire du à l'alignement. De plus le calcul est plus long avec 8bits qu'avec 32Bits ( le format natif des processeurs est le 32Bits )
- Utilise directement Result comme variable temporaire, c'est plus clair que d'utiliser une autre variable ( comme strRes par exempl )

Heureusement que tu as dit que tu avais simplifier la procédure... J'avais mis en commentaire sur le source que tu cites, une conversion plus simple. La voici adpatée à ton source :
function ClpBase.BaseDix(strNbr:string; bBase:Integer):string;
var Valeur,I:Integer;
begin
Valeur:=0;
For i:=1 To Length(strNbr) Do Valeur:=Valeur*bBase+ GetChiffre(strNbr[i]);
Result := IntToStr(Valeur);
end;

function ClpBase.BaseOther(lwNbr:LongWord; bBase:Byte):string;
var bIndex:Byte;
begin
Result := '';
Repeat
Result:=SetChiffre(lwNbr Mod bBase)+Result;
lwNbr:=lwNbr Div bBase;
Until lwNbr=0;
end;

Nono.