Page 1 sur 1

Décomposition de la fonction BCD_TO_INT

Posté : 26 déc. 2015, 19:20
par itasoft
Slts,
Décomposition de la fonction BCD_TO_INT ,INT_TO_BCD à quoi ça sert ?
C’est dans les cas ou on à besoin de ces fonctions dans un langage qui n’en possède pas (ex :Script)

(* Valeur en BCD *)
Wbcd:=16#1234;
(* Valeur en binaire (INT) *)
Wint:=(Wbcd/4096)*1000
+((Wbcd REM 4096)/256)*100
+((Wbcd REM 256)/16)*10
+(Wbcd REM 16);


INT_TO_BCD

(* Valeur en INT *)
Wint:=1234;
(* Valeur en BCD *)
Wbcd:=(Wint/1000)*4096
+ ((Wint REM 1000)/100)*256
+ ((Wint REM 100)/10)*16
+ (Wint REM 10);


autres fonctions à faire

Re: Décomposition de la fonction BCD_TO_INT

Posté : 28 déc. 2015, 08:47
par Ashkore
Salut,

Je n'ai jamais vu ni entendu parler de ces fonctions, pourrais-tu nous préciser à quoi servent-elle ?
Ou du moins m'expliquer à quoi correspond une valeur en BCD.

Merci d'avance.

Re: Décomposition de la fonction BCD_TO_INT

Posté : 28 déc. 2015, 09:13
par itasoft
[attachment=0]__BCD.JPG[/attachment]
cliquer dessus pour agrandir la photo

Re: Décomposition de la fonction BCD_TO_INT

Posté : 28 déc. 2015, 09:50
par itasoft
suite,
pour faire ça, il faut d'abord convertir le mot en BCD avant de le copier sur les 16 sorties.

EX:
%MW0:=1234;

%Q2.0:16:=INT_TO_BCD(%MW0);

Re: Décomposition de la fonction BCD_TO_INT

Posté : 04 mars 2016, 14:38
par DavyQ
Bonjour,
aurais tu également la décomposition de la fonction INT_AS_DINT (utilisable sous Unity) ?

Merci d'avance.

Re: Décomposition de la fonction BCD_TO_INT

Posté : 04 mars 2016, 15:07
par philou77
Salut !

fonction INT_AS_DINT

C'est utilisé pour obliger UNITY à prendre une variable INT comme DINT
Donc une variable %MW 0 déclarée en INT sera interprétée comme %MW0 et %MW1 en Double INT !

Re: Décomposition de la fonction BCD_TO_INT

Posté : 04 mars 2016, 15:09
par itasoft
@davy
c'est expliqué sur l'aide en ligne de Unity, je peux pas faire mieux ni plus simple, lol

Re: Décomposition de la fonction BCD_TO_INT

Posté : 04 mars 2016, 16:51
par steph68
pour @ashkore : https://fr.wikipedia.org/wiki/D%C3%A9ci ... A9_binaire
C'est utilisé pour obliger UNITY à prendre une variable INT comme DINT
Ne pas confondre INT_AS_DINT et INT_TO_DINT ...

la première fonction prend 2 INT en entrée (poids faible + poids fort) pour un DINT en sortie (= poids fort * 65536 + poids faible)
la deuxième prend un INT en entrée pour le convertir en DINT (extension du bit de signe)

@+