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

cs_Nono40 Messages postés 962 Date d'inscription mercredi 3 avril 2002 Statut Membre Dernière intervention 12 septembre 2006 - 18 nov. 2002 à 22:34
cs_mcgyver Messages postés 4 Date d'inscription lundi 30 décembre 2002 Statut Membre Dernière intervention 10 septembre 2007 - 22 mai 2004 à 03:00
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

cs_mcgyver Messages postés 4 Date d'inscription lundi 30 décembre 2002 Statut Membre Dernière intervention 10 septembre 2007
22 mai 2004 à 03:00
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.
cs_Nono40 Messages postés 962 Date d'inscription mercredi 3 avril 2002 Statut Membre Dernière intervention 12 septembre 2006 2
18 nov. 2002 à 22:34
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.
Rejoignez-nous