Convertion Binaire

Résolu
swadfish Messages postés 16 Date d'inscription mardi 21 février 2006 Statut Membre Dernière intervention 8 février 2010 - 31 janv. 2010 à 22:18
swadfish Messages postés 16 Date d'inscription mardi 21 février 2006 Statut Membre Dernière intervention 8 février 2010 - 3 févr. 2010 à 14:26
Bonsoir,
je sollicite votre aide pour pouvoir recoudre mon problème qui s'agit de convertir un nombre décimale en binaire en un octet et sur lequel je peux appliquer des opération arithmétique

Bon j'ai essayer qui suit:
[*] Créer un tableau de 8 éléments (8 bit)
[*] convertir l'élément décimale par la méthode classique ( div et mod)
[*] rassembler ses éléments dans le tableau
[*] le lire par la boucle for/downto

le problème qui persiste c'est application arithmétique sur le résultat (que j'ai pas trouvé un autre moyen de le rassembler qu'en chaine de caractères "s:=s+t[i]")

Si quelqu'un peut me proposer une solution ou m'aider a la trouvé j'en serai ravi .
Merci


My Life Is Delphi

6 réponses

botelec Messages postés 38 Date d'inscription vendredi 20 juin 2003 Statut Membre Dernière intervention 11 septembre 2010 1
2 févr. 2010 à 14:27
Bonjour,
A ma connaissance, il n'y a que Val() qui permette de convertir une chaine de caractère en une valeur décimale.
Reste qu'on ne fait pas directement d'opération en binaire (Chaine), il est plus simple de travailler directement sur de l'hexa ou du décimal.

ps: j'ai choisi le format 8 bit pour effectuer les opérations binaires

Si tu dois faire des opérations sur du binaire; converti d'abord en Hexa; BinToHex()
Ensuite tu peux faire tes opérations et enfin tu peux reconvertir si besoin; HexToBin()

Exemple: tu veux '00000011' or '00000100' '00000111' < soit > $3 or $4 $7
Cordialement.
MAt.
3
botelec Messages postés 38 Date d'inscription vendredi 20 juin 2003 Statut Membre Dernière intervention 11 septembre 2010 1
2 févr. 2010 à 17:31
Effectivement, non DelphiProg, je ne les connaissais pas toute, (Je parlais quand même de conversion entre chaine > décimal et décimal < chaine), merci tout de même pour tes précisions :)

Et oui, a swadfish le résultat avec un NOT sera identique en hexa et en binaire qui ne sont que des représentations.
(La calculatrice peut aussi t'aider en affichage scientifique ...)

'00000011' or not '00000100' <=> '00000011' or '11111011' => '11111110' = 251 en décimal

=> $3 or $FB => $FB = 251 en décimal

Voila, A+
3
swadfish Messages postés 16 Date d'inscription mardi 21 février 2006 Statut Membre Dernière intervention 8 février 2010
2 févr. 2010 à 00:00
Merci pour ta réponse,
J'ai déjà vu ce code source mais le problème c'est que le résultat est une chaine de caractère donc impossible d'effectuer les opération arithmétique et même si je le convertie entier il va perdre sa forme régulière par exemple(s='00010011) >>> en entier (10011)
ps: j'ai choisi le format 8 bit pour effectuer les opération binaire.
bonne nuit

My Life Is Delphi
0
swadfish Messages postés 16 Date d'inscription mardi 21 février 2006 Statut Membre Dernière intervention 8 février 2010
2 févr. 2010 à 14:36
Merci pour ta réponse botelec;
et si je veut utiliser le NOT cela sera la même chose qu'en hex qu'au binaire?
My Life Is Delphi
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
cs_Delphiprog Messages postés 4297 Date d'inscription samedi 19 janvier 2002 Statut Membre Dernière intervention 9 janvier 2013 32
2 févr. 2010 à 16:20
@botelech : ignorerais-tu toutes ces routines de conversion ?
Routines de conversion à virgule flottante

FloatToCurr,fonction

Convertit une valeur virgule flottante en valeur Currency.

FloatToDateTime,fonction

Convertit une valeur virgule flottante en valeur TDateTime.

FloatToDecimal,procédure

Convertit une valeur virgule flottante en représentation décimale.

FloatToStr,fonction

Convertit une valeur virgule flottante en chaîne.

FloatToStrF,fonction

Convertit une valeur virgule flottante en chaîne à l'aide des paramètres Format,Precision et Digits.

FloatToText,fonction

Convertit une valeur virgule flottante en une chaîne non terminée,à l'aide des paramètres Format,Precision et Digits.

FloatToTextFmt,fonction

Convertit une valeur àvirgule flottante en une chaîne non terminée,à l'aide du format spécifié.

FormatFloat,fonction

Formate une valeur àvirgule flottante.

StrToCurr,fonction

Convertit une chaîne en valeur Currency.

StrToCurrDef,fonction

Convertit une chaîne en valeur Currency,avec renvoi de Default en cas d'erreur.

StrToFloat,fonction

Convertit une chaîne donnée en valeur àvirgule flottante.

StrToFloatDef,fonction

Convertit une chaîne donnée en une valeur à virgule flottante,avec renvoi de Default en cas d'erreur.

TextToFloat,fonction

Convertit une chaîne àzéro terminal en valeur àvirgule flottante.

TryFloatToCurr,fonction

Convertit une valeur virgule flottante en valeur Currency.

TryFloatToDateTime,fonction

Convertit une valeur virgule flottante en valeur TDateTime.

TryStrToCurr,fonction

Convertit une chaîne en valeur Currency,avec renvoi d'un code de succès booléen.

TryStrToFloat,fonction

Convertit une chaîne donnée en une valeur à virgule flottante,avec renvoi d'un code de succès booléen.


May Delphi be with you

Pensez à cliquer sur Réponse acceptée lorsque la réponse vous convient.

Sauvons MySQL
0
swadfish Messages postés 16 Date d'inscription mardi 21 février 2006 Statut Membre Dernière intervention 8 février 2010
3 févr. 2010 à 14:26
Merci :):)


My Life Is Delphi
0
Rejoignez-nous