Bonjour,
Je cherche à convertir en notation décimal un flottant 16 bit IEEE 754
issu d'un automate.
Est-ce quelqu'un à un bout de code PHP à me proposer?
Car pack et unpack fonctionne qu'avec 32 et 64 bits.
Pour tester j'ai sorti les valeurs suivantes au multimètre.
-10000mV -> D8F0
10000mV -> 2710
Puisque j'y suis, est-ce qu'il y a un moyen de faire cette conversion
en console bash?
Je suis plus à l'aise en python, mais c'est facilement transposable en php.
Le truc est d'utiliser le 15è bit :
$python
>>> 0XD8F0 | (-1 ^ 0xFFFF)*(0XD8F0>>15)
-10000
>>> 0x2710 | (-1 ^ 0xFFFF)*(0x2710>>15)
10000
ou en micro script
*------ IEEE16b.py ------*
#!/usr/bin/python
import sys
n=eval("0x"+sys.argv[1])
print n | (-1 ^ 0xFFFF)*(n>>15)
*---------------------------------*
>>> ./IEEE16b.py 2710
10000
>>> ./IEEE16b.py d8f0
-10000
François
_______________________________________________
gull mailing list
[email protected]
http://forum.linux-gull.ch/mailman/listinfo/gull