Convertir des nombres en ligne de commande
Saturday, 2. August 2008, 17:39:00
Tout "bidouilleur" qui se respecte a forcément à portée de main (ou de quelques clics de souris) une table ascii et un logiciel pour convertir des chiffres d'une base à une autre (binaire, décimal, hexadécimal, octal).
En ce qui me concerne, pour la table ascii j'ai la même qui traine sur mon bureau depuis environ 8 ans
Par contre le problème se pose pour la conversion des chiffres. J'ai plutôt tendance à utiliser la calculatrice de KDE3 (KCalc) mais ça m'oblige à passer par le menu KDE, choisir "Applications", "Utilitaires", "Calculatrice"... ce n'est pas très rapide surtout que si on ferme la calculatrice on est bon pour répéter le même cheminement la première fois
Bref ce serait tellement plus rapide d'avoir un outil de conversion de nombres en ligne de commande
Sous Linux on a bien "bc" qui permet de réaliser des conversions en utilisant les commandes "ibase" et "obase".
Ca marche bien seulement là encore on a plein de choses à taper, c'est interactif : on ne peut pas passer les arguments en ligne de commande et utiliser un echo+pipe ça ne me dit trop rien...
Après quelques recherches peu concluantes, j'ai finalement trouvé un petit outil sympathique sur SourceForge nommé Number Converter (numcv).
Pour le compiler on utilisera la commande "gcc -o numcv numcv.c -lm".
La commande prend trois arguments. Le premier est la base d'origine du nombre qui tient sur un seul caractère : 'o' pour octal, 'd' pour décimal, 'h' pour hexadécimal et 'b' pour binaire.
Le second argument est le nombre à convertir et enfin le dernier argument est la base de sortie pour la conversion (les même caractères que précédemment).
Ce qui donne par exemple :
On peut en plus spécifier la base 'a' qui nous permet de connaître la valeur d'un caractère ascii :
Le seul inconvénient est que l'on ne peut convertir qu'un nombre/caractère à la fois. Et aussi une fonction usage() avec une option -h ne serait pas du luxe
Au final un outil sympathique en ligne de commande et qui s'avère vite indispensable
En ce qui me concerne, pour la table ascii j'ai la même qui traine sur mon bureau depuis environ 8 ans
Bref ce serait tellement plus rapide d'avoir un outil de conversion de nombres en ligne de commande
Sous Linux on a bien "bc" qui permet de réaliser des conversions en utilisant les commandes "ibase" et "obase".
> bc obase=2 ibase=16 DEADC0DE 11011110101011011100000011011110
Ca marche bien seulement là encore on a plein de choses à taper, c'est interactif : on ne peut pas passer les arguments en ligne de commande et utiliser un echo+pipe ça ne me dit trop rien...
Après quelques recherches peu concluantes, j'ai finalement trouvé un petit outil sympathique sur SourceForge nommé Number Converter (numcv).
Pour le compiler on utilisera la commande "gcc -o numcv numcv.c -lm".
La commande prend trois arguments. Le premier est la base d'origine du nombre qui tient sur un seul caractère : 'o' pour octal, 'd' pour décimal, 'h' pour hexadécimal et 'b' pour binaire.
Le second argument est le nombre à convertir et enfin le dernier argument est la base de sortie pour la conversion (les même caractères que précédemment).
Ce qui donne par exemple :
> numcv d 31337 x 0x7a69 > numcv x 29a d 666 > numcv o 56 b 101110
On peut en plus spécifier la base 'a' qui nous permet de connaître la valeur d'un caractère ascii :
> numcv a A x 0x41
Le seul inconvénient est que l'on ne peut convertir qu'un nombre/caractère à la fois. Et aussi une fonction usage() avec une option -h ne serait pas du luxe
Au final un outil sympathique en ligne de commande et qui s'avère vite indispensable






