begin process at 2012 02 11 00:12:49
  Trouver un code source :
 
dans
 
Accueil > Forum > 

Archive Delphi

 > 

Archives

 > 

Maths

 > 

Conversion real binaire


Derniers messages déposésPoser une question dans le forum ou lancer une discussion

Conversion real binaire

jeudi 12 mai 2005 à 09:33:26 | Conversion real binaire

difficile

Bonjour,
J'utilise Delphi 7 pour communiquer avec un automate Télémécanique
et je rencontre un probléme pour convertir un nombre flotant (32 bits)
en binaire. Je communique avec un socket TCPIP et pour construire la trame
il me faut des octets. exemple: Edit1.text = 253.7521 à transferer dans
une variable automate (real 32 bits) donc il faut construire les 4 bytes.

Merci
jeudi 12 mai 2005 à 17:40:51 | Re : Conversion real binaire

Kenavo

Sauf erreur, Télémécanique utilise le codage IEEE 32 bits, c'est à dire le type Single

On doit pouvoir écrire :

type
  TTab4Byte = Array[0..3] of Byte;
  PTab4Byte = ^TTab4Byte;
var
  Ptr : PTab4Byte;
  IEEE32 : Single;
begin
  IEEE32 := Pi;
  Ptr := Pointer(@IEEE32); // et les 4 octets sont : Ptr^[0],
Ptr^[1], Ptr^[2] et Ptr^[3]
end;
 
A vérifier : l'ordre des octets dans l'automate, mais ça doit être le même que dans un PC

Ken@vo

Code, Code, Codec !


jeudi 12 mai 2005 à 21:54:02 | Re : Conversion real binaire

WhiteHippo

Membre Club

Tout à fait Kenavo.

Pour être précis :
"Le format flottant utilisé est celui de la norme IEEE STD 734-1985 (équivalence IEC559). La longueur des mots est de 32 bits, ce qui correspond à des nombres flottants simple précision."

Par contre c'est direct :

var
  IEEE32 : Single;

begin
  IEEE32 := FloatToStr(Edit1.text) ;
  // IEEE32 contient le nombre au format réel, tu le transmets tel quel. 
  // La valeur récupérée pourra être directement utilisée dans un %MF
end;

Cordialement.

vendredi 13 mai 2005 à 17:31:36 | Re : Conversion real binaire

Kenavo

Et à la question que tu te poses maintenant :

Oui, tu peux faire l'opération inverse à partir d'un paquet d'octets reçu :


Type
  TTab4Byte = Array[0..3] of Byte;
  PTab4Byte = ^TTab4Byte;
var
  Ptr : PTab4Byte;
  IEEE32 : Single;
begin
  Ptr := Pointer(@IEEE32); // et les 4 octets sont : Ptr^[0],
Ptr^[1], Ptr^[2] et Ptr^[3]
  Ptr^[0]:=OctetsRecus[i];
  Ptr^[1]:=OctetsRecus[i+1];
  Ptr^[2]:=OctetsRecus[i+2];
  Ptr^[3]:=OctetsRecus[i+3];
end;

On peut aussi créer un pointeur sur Single,

var
 
PileReception : array[0..99] of byte;  // la pile de reception de données
........
var
  IEEE32 : Single;
  ps : ^Single;
begin
  Ps := Pointer(@pile[i]);  // i est l'index du premier octet du réel
  IEEE32:=Ps^;
end;


Ken@vo

Code, Code, Codec !

http://www.pourflorenceethussein.org


Cette discussion est classée dans : binaire, conversion, real, automate, bits


Répondre à ce message

Sujets en rapport avec ce message

conversion real en string [ par frouxguillaume ] Bonjour, je voudrais savoir si il existe une fonction permettant la conversion d'un nombre de type real en chaine de caractere (string).Petite precisi Conversion binaire décimal [ par Laudrup ] Bonjour à tous,je voulé savoir comment vous feriez pour faire un programe qui convertit un nombre binaire en un otr décimal pui pour afficher le décim conversion binaire en caractère [ par codepvc ] Bonjour,voulez vous m'aider pour convertir un texte en binaire à un texte en caractère, c'est-à-dire prendre chaque 8bits et le convertir utilisant le conversion monétaire multi devises [ par neige21 ] Bonjour à tous je suis une debutante en Delphi je cherche un algorithme pour faire la conversion monétaire multi devises, j'ai beau essayé d'en faire AlphaBlend , TransparentColor & Co [ par Nicolas___ ] Bonjour , encore moi ;) Voila, j'ai encore un problème : Cirec m'a fait Découvert il y a quelque temps TransparentBlt (http://www.delphifr.com/forum/s [Info]Compilo Delphi -> pour 2010 [ par rt15 ] Bonjour,Juste pour ceux qui seraient pas encore au courant et que ça pourrait intéresser... La traduction d'une annonce de heu... Emabarcadero on va d programation avec pic 16F877 [ par ta7foun2009 ] Bonjour, je voudrais bien savoir comment réaliser un chronomètre allant de  0 à 2min59 avec un PIC 16F877avec :-les 6 bits de poids faible indiquant l Conversion colonne excel en caractère [ par TheSotr ] Bonjour,Je suis un réel débutant en Delphi (depuis hier en fait ^^) mais ai des bonnes bases de programmation en Visual Basic, C, Java (un peu), MatLa Conversion de caractére á ASCII avec 2 edit box (champs de texte) [ par Dancsi27 ] Bonjours tout le monde,J'ai une petite exercice á faire pour l'école oú j'ai une fiche avec un button Quitter et 2 edit box (champs de texte)Le button Convertir l'identifiant d'un composant en Real [ par Matware456 ] Bonjour, Voilà je suis inscrit depuis pas mal de temps mais c'est mon premier message ici. Je suis débutant en Delphi et j'ai un petit problème :J'uti


Nos sponsors


Sondage...

CalendriCode

Février 2012
LMMJVSD
  12345
6789101112
13141516171819
20212223242526
272829    

Consulter la suite du CalendriCode

Photothèque

 
Développement réalisé par Nicolas SOREL (Nix) avec l'aide de : Cyril DURAND et Emmanuel (EBArtSoft), Merci à Vincent pour ses précieux conseils.
CodeS-SourceS.com© Toute reproduction même partielle est interdite sauf accord écrit du Webmaster
CodeS-SourceS.com© est une marque déposée tous droits réservés

Google Coop CodeS-SourceS Google Coop CodeS-SourceS
Temps d'éxécution de la page : 0,577 sec (4)

Nous contacter | Annoncer sur CodeS-SourceS | Mentions légales