[gull] convertir du IEEE 754 16bit en décimal
François
py at topmusic.ch
Sat Jun 19 09:56:00 CEST 2010
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
More information about the gull
mailing list