Tcl expressions avec des nombres hexadécimaux?
Le Tcl expr
fonction prend en charge les arguments écrits en hexadécimal: opérandes qui commencent avec 0x
sont traitées comme des nombres entiers écrits en hexadécimal forme.
Toutefois, la valeur de retour de expr
est toujours sous la forme décimale: expr 0xA + 0xA
retourne 20
, pas 0x14
.
Est-il un moyen de dire expr
pour revenir à la représentation hexadécimale?
Est-il un Tcl fonction qui convertit la représentation décimale de hex?
OriginalL'auteur Vahagn | 2012-02-01
Vous devez vous connecter pour publier un commentaire.
la
format
commande est ce que vous êtes après:format %b 0xa
échoue à la place ou de retour1010
.Tcl est
format
n'est pas "%b" (voir le lien vers la documentation dans ma réponse). Vous pouvez trouver des Tcl code pour renvoyer une chaîne de chiffres binaires ici. Tcl 8.6 (encore en beta) N'ont "%b" formateur.OriginalL'auteur glenn jackman
J'aimerais des précisions sur le glenn post pour rendre les choses plus claires pour Vahagn.
expr
n'a pas renvoyé de résultat dans une représentation ou d'une autre, au lieu de cela, elle renvoie une valeur dans certains adapté format interne (un entier, un grand nombre entier, une valeur en virgule flottante, etc). Ce que de vous voir faire votre test est juste l'interpréteur Tcl la conversion de ceexpr
retourna à une forme textuelle à l'aide d'un par défaut conversion d'une chaîne qui, pour les entiers, naturellement utilise la base 10.Cette conversion a lieu dans votre cas, uniquement parce que vous vouliez afficher la valeur retournée par
expr
, et l'affichage de (tout) les valeurs de a naturellement tendance à les convertir en chaînes si elles sont "imprimées"à un terminal, à un tkcon'fenêtre etc.En utilisant
format
vous appliquer quelle que soit la représentation de chaîne que vous voulez à la place de celui par défaut. Depuisformat
déjà renvoie une valeur qui est une chaîne de caractères en interne, aucune conversion n'a lieu que lorsqu'il est imprimé.OriginalL'auteur kostix