Convertisseur hexadécimal en décimal et en binaire

Bon ben trouvé.
La fonction decbin() est foireuse.
Jusqu’à 0xfff8, c’est-à-dire 1111111111111000, elle fonctionne. Au-delà, le résultat est faux.

Bonjour,

C’est bizarre ce que tu dis car je ne vois pas de soucis de ce côté là.
J’ai découpé le résultat de la fonction decbin() de Jeedom pour que ce soit lisible, j’ai bien la même valeur qu’avec la calculatrice de Windows :
11 1010 0100 0000 0000 0001

image

Entre la formule decbin(65535) dans le testeur d’expression.
Normalement, tu devrais avoir 1111111111111111
Moi, j’ai 1111111111111100

En effet j’ai la même chose, il faut juste que je décompose en utilisant substr avant la conversion du coup ?

Sinon il y a hex2bin

https://www.php.net/manual/fr/function.hex2bin.php

A priori la commande n’est pas reconnue :

hex2bin(F)

donne :

Résultat de la commande : hex2bin(F)

Essaye ça PHP: base_convert - Manual
image

Même problème qu’au-dessus :

base_convert('FFFF',16,2)

donne 1111 1111 1111 1100 et non pas 1111 1111 1111 1111

je crois bien qu’il ne me reste plus qu’à décomposer…

C’est etonnnant

image
Il n’y a pas un arrondi ou un truc du genre qui traine dans tes tests ?

1 « J'aime »

Avec le testeur d’expression c’est OK :
image

J’était en paramètre « Numérique » en mettant « Autre » j’ai le bon résultat

image

1 « J'aime »

oui il faut traiter ça comme une chaine pour jeedom. Sinon il interprète les valeurs (y compris en supprimant les 0 avant)

1 « J'aime »

Re,

Bon j’ai encore une interrogation sur ma demande. Afin d’exploiter au mieux mes binaires je souhaiterais que la valeur 0 décimal m’affiche 00000000 (ici 8 bits ce nombre devra être une variable que j’ajusterai en fonction du mots).
Car si j’ai pas ces huit 0 la fonction substr ne fonctionne pas (désolé pour la répétition).

Que ce soit decbin ou base_convert, toutes ces fonctions me donne 0.

J’avoue j’ai regardé rapidement le man de ces 2 fonctions j’ai rien trouver… Je préfère demander à des experts plutôt que de m’arracher les cheveux !

Merci !

  • Concatene 7 zéro à ton résultat
  • Fais ton substr() en partant de la fin de la chaine

ça changera rien à la valeur

1 « J'aime »

Ça marche, j’ai bien fait de demandé ! Merci.
Maintenant comment j’associe cette valeur à un texte genre 10 = forçage à l’arrêt et 11 = forçage marche de façon à l’afficher dans le centre des messages par exemple ou sur un design, il faut que je passe par un scénario ?

Tu sais faire des scénario… S’en est un. Cherche du côté de ‹ event › par exemple

Ce sujet a été automatiquement fermé après 24 heures suivant le dernier commentaire. Aucune réponse n’est permise dorénavant.