10-20-2015 07:33 AM - edited 10-20-2015 07:34 AM
Bonjour,
Est-ce possible d'obtenir une donnée hexadécimal à partir d'une commande décimale négative avec Labview?
lorsque je rentre la consigne -1 , l'indicateur renvoi FFFFFFFF.
Or, je voudrais l'affichage suivant : exemple : -42 = -2A
Merci.
10-20-2015 10:29 AM
Oui, en affichant la valeur dans un indicateur type "string".
Reste à savoir si l'affichage d'une valeur hexa avec un signe fait sens. La réponse vous appartient.
10-20-2015 10:41 AM
@ JB : " Reste à savoir si l'affichage d'une valeur hexa avec un signe fait sens "
Bonjour JB,
ta "remarque" m'interpelle et franchement, elle pique ma curiosité.
Pourquoi un nombre représenté en Hexa et précédé du signe négatif n'aurait-il pas de sens ?
Pour moi, toute quantité peut être, soit positive, soit négative ... et son "mode de représentation" est accessoire.
42 est en base 10 ... et 2A en base 16.
Pourquoi la base de représentation influencerait-elle le sens, ou le non sens du signe ?
Mais peut-être as-tu une autre vue des choses (probablement).
Ta vue des choses m'intéresse .. pourrais-tu développer ce qui te porte à cette remarque.
Merci JB.
10-21-2015 02:18 AM
Bonjour, merci pour vos reponses.
En effet le signe de la valeur hexa fait sens.
Je ne l'avais pas précisé dans ma question mais en réalité je cherche a obtenir cette valeur en format numérique et non chaine.
J'utilise ces valeurs pour effectuer des opérations numériques via une carte I²C.
Dans le cas ou il est impossible d'obtenir un hexa négatif sous format numérique, j'essayerai "d'injecter" une trame binaire type U8 à la place...
Merci.
10-21-2015 03:29 AM - edited 10-21-2015 03:34 AM
Bonjour,
En soit l'affichage du signe "-" n'a pas de sens non plus dans une représentation hexadécimal. Cela me choque.
Cela reviendrais à mettre aussi un signe "-" en binaire, or on sait que le signe est déterminé par le bit de poids fort en binaire, donc en soit il est affiché.
C'est sur que dans le cadre de l'hexadécimal, celui-ci est moins trivial a détecté à l'écran.
Moi je poserais la question inverse, quel est l'intérêt dans ton application d'afficher le signe négatif en hexadécimal ? pourquoi ne pas faire un double affichage hexa / deci au pire ?
Bonne journée à tous.
EDIT : Nos réponse ce sont croisé.
S'il s'agit d'envoyer la valeur, quoi qu'il arrive les données seront traités à très bas niveau en tant que binaire, donc tu n'es pas censé te poser ce genre de question. Si ta cible sait qu'il s'agit d'un entier signé, il devrait interprété correctement ton hexadécimal en l'état.
10-21-2015 03:50 AM
@ driver23 : Dans le cas ou il est impossible d'obtenir un hexa négatif sous format numérique
les nombres hexa négatifs sous format numérique existent ...( comment pourrait-il en être autrement ?)
"FFFFFFD6" est bien la représentation numérique, et en hexa, de la quantité 42 négative. Ce, via la convention de représentation "complément à 2".
C'est uniquement une question de "mode de représentation".
Ce que tu aimerais ... c'est pouvoir représenter un nombre hexa négatif ... en utilisant la convention utilisée pour les nombres en base 10.
Là, effectivement ... mis à part une solution du type proposée par JB ... c'est le cul-de-sac sous LabVIEW.
LV ne propose pas de façon native ce type de représentation pour les hexa négatifs.
On pourrait même se demander "pourquoi" (?) ... peut-être une "idée" à proposer sur LV Idea Exchange.
En effet, dans le cas d'un indicateur, on peut facilement imaginer avoir le besoin (ou l'envie) d'afficher un hexa négatif sous une forme "plus facilement appréhendable pour l'Humain".
Ce qui ne changerait en rien que "pour le code" (et le µP) ... -42 en hexa serait toujours "FFFFFFD6" (seule représentation compréhensible pour nos ordinateurs).
Mais en ce qui me concerne, dans une pure optique IHM (interface Homme Machine), une représentation " - 2A" (pour -42 en base 10) ... serait une option qui aurait tout son sens.
Juste une question de "relation" entre l'Homme et la Machine.
10-21-2015 03:55 AM
@ Michael : " Cela reviendrais à mettre aussi un signe "-" en binaire, or on sait que le signe est déterminé par le bit de poids fort en binaire, donc en soit il est affiché."
et pourquoi pas ? .... - 5 == - 101
bien entendu qu'au niveau de la machine et du processeur .... il n'y aura "pas" ce signe "-" .
Personnellement, j'évoque uiquement l'interfaçage vers l'Humain.
10-21-2015 06:44 AM
Ouadji,
Je ne suis pas pour ce genre d'initiative, car tout simplement en passant d'une IHM à une autre, si la personne n'a pas mis assez en avant son choix, tu te trouveras à te poser la question de savoir si -101 re présente -5 ou bien -101.
Si la personne cherche à "voir" une valeur négative, alors il faut passer par un conteneur "string" comme proposé précédemment, mais en faisant attention à bien clarifier la base utilisé.
Cdt,
Michael
10-21-2015 10:00 AM
car tout simplement en passant d'une IHM à une autre, si la personne n'a pas mis assez en avant son choix,
tu te trouveras à te poser la question de savoir si -101 re présente -5 ou bien -101.
d'accord avec toi Michael ... il est nécessaire que "la base" soit explicite.
Ceci dit, ce problème existe "déjà". (et ne serait pas "nouveau" à l'utilisation du signe "-")
LabVIEW propose de pouvoir afficher le résultat dans une autre base sans pour autant visualiser celle-ci.
(l'option "show radix" n'est pas d'office)
alors dans ce cas ... 100 ... c'est quoi ? ... 4 en binaire, 100 en décimal ou 64 en octal ? (je ne parle même pas ici des nombres négatifs)
Je veux dire par là que prendre la précaution d'afficher "la base" ne serait pas un nouveau problème ... ce problème existe déjà.
10-21-2015 10:11 AM
Tu preches un converti 😉
Dans un environnement multi -OS, multi-produit, et multi-developpeurs, je suis régulièrement confronté à cette problématique.
C'est pour cela que j'affiche tout le temps la base dans mes afficheurs, pour ne plus être dérangé par ce type de problématique.
Cdt,
Michael