From 0fa6d7ab14eb65d11180432949387ee6f44e517a Mon Sep 17 00:00:00 2001 From: Jukoo <34043000+Jukoo@users.noreply.github.com> Date: Sun, 8 Mar 2026 20:48:40 +0000 Subject: [PATCH 1/4] Revise README for better clarity and organization Updated README.md to improve clarity and structure, including project goals, features, and usage examples. --- README.md | 133 ++++++++++++++++++++++++++++++++++-------------------- 1 file changed, 83 insertions(+), 50 deletions(-) diff --git a/README.md b/README.md index e7c226a..865604d 100644 --- a/README.md +++ b/README.md @@ -4,50 +4,78 @@ Python-Support -#### Apropos du Base Converter +# BaseConv (bcv) -**bcv** (*Base Converter*) est un outil en ligne de commande simple, rapide et libre, conçu pour convertir des nombres entre différentes bases numériques : **binaire**, **octale**, **décimale** et **hexadécimale**. +**bcv** (*Base Converter*) est un outil en ligne de commande simple, rapide et libre, +conçu pour convertir des nombres entre différentes bases numériques : -> Développé par **KerHack-Libre**, dans un esprit **éducatif et pratique**, pour aider chacun à acquérir une **base solide en numérisation informatique** — la fondation de tout système logiciel. +- Binaire (2) +- Octale (8) +- Décimale (10) +- Hexadécimale (16) + +> Développé par **KerHack-Libre**, dans un esprit **éducatif, local et pratique**, +> pour aider chacun à acquérir une **base solide en numérisation informatique**. --- -##### Objectif du projet +## 🎯 Objectif du projet -Ce projet est né d’un besoin simple mais fondamental : -**comprendre, manipuler et visualiser les bases numériques** qui sont au cœur de tout ce que fait un ordinateur. +Bcv se veut d'etre leger et simpliste sans passer par d'outils lourds. +qui permet de faire: -> Une chose aussi basique peut ouvrir des portes incroyables sur la compréhension du fonctionnement interne des machines — et même aider à créer de meilleurs logiciels. +- Inspecter et déboguer des signatures de fichiers binaires +- Vérifier rapidement une valeur hexadécimale +- Visualiser un décalage binaire (`<<`, `>>`) +- Tester des expressions numériques shell -**bcv** n’est pas qu’un convertisseur : -c’est un petit compagnon du quotidien pour les développeurs, étudiants, hackers, ou passionnés de bas niveau. -Je l’utilise moi-même chaque jour pour : -- inspecter et déboguer des signature sur des fichiers **fichiers binaires** -- ou simplement vérifier rapidement une conversion en **binaire / hex / octal** sans lancer d’outil lourd. +#### Dimension éducative ---- +Comprendre les bases numériques, c’est comprendre la langue native des ordinateurs. -##### Dimension éducative +**bcv** a été conçu : -Comprendre les bases numériques, c’est comprendre la langue native des ordinateurs. +- Pour initier aux fondements du système de numérisation +- Pour visualiser concrètement les représentations numériques +- Pour renforcer les compétences bas niveau +- Pour établir une base solide de compétences à l’ère numérique -**bcv** a été conçu dans un but éducatif: +#### Fonctionnalités -pour initier les étudiants et curieux aux bases du système de numérisation informatique ; +- [x] Conversion instantanée entre bases 2, 8, 10, 16 +- [x] Détection automatique des préfixes (`0b`, `0o`, `0x`) +- [x] Affichage des caractères ASCII imprimables (32 → 127) +- [x] Support des expressions shell : +```bash +bcv $((10 << 2)) +``` -pour permettre aux développeurs de visualiser concrètement ce qui se cache derrière les chiffres et les octets ; +- [x] Support des caractères entre guillemets : +```bash +bcv "#" +``` -et pour montrer que même un petit outil simple peut être une porte d’entrée vers la programmation système et la conception logicielle. +- [x] Mode interactif amélioré +- [x] Sortie claire et structurée +- [x] Compact, rapide et sans dépendance externe -##### Fonctionnalités +#### TODO +- [ ] Different Format de sortie : + - [ ] JSON + - [ ] Yaml + - [ ] XML + +#### Architecture & Intégration -- Conversion instantanée entre **bases 2, 8, 10 et 16** -- **Shell interactif** intégré (`b/`, `o/`, `x/` ou `exit`) -- **Détection automatique** du format d’entrée (`0b`, `0o`, `0x`) -- ⚙️ **Compact**, **rapide** et **sans dépendance** -- Parfait pour l’apprentissage, le scripting et le débogage -- Compatible **Unix/Linux**, compilable avec **GCC** ---- +bcv repose sur une librairie C locale, développée sans dépendance externe. + +Elle permet : +- Une intégration directe dans d'autres programmes +- Une architecture modulaire +- Une autonomie technologique totale + +Ce n’est pas seulement un outil CLI, +c’est aussi un composant réutilisable. ##### Installation @@ -78,24 +106,7 @@ bcv [OPTION] ``` -#### Mode Interactive - -Lancer simplement -```bash -bcv -``` -Puis entrer les commandes : - -```bash -b/42 → convertit en binaire -x/255 → convertit en hexadécimal -o/77 → convertit en octal -exit → quitte le shell -``` - -#### mode Rapide - -#### Exemples +###### Mode direct ou rapide ```bash $ bcv 12 @@ -109,12 +120,34 @@ DEC : 65261 OCT : 0o177355 BIN : 0b1111111011101101 -$ bcv E -DEC : 69 -HEX : 0x45 -OCT : 0o105 -BIN : 0b1000101 +$ bcv 33 + +DEC: 33 +HEX: 0x21 +OCT: 041 +BIN: 0b100001 +CHR: ! +``` +###### Expression shell +> bcv $((1 << 2)) + +###### Caractère ASCII +> bcv "U" + +#### Mode Interactive + +Lancer simplement +```bash +bcv +``` +Puis entrer les commandes : + +```bash +b/42 → convertit en binaire +x/255 → convertit en hexadécimal +o/77 → convertit en octal +exit → quitte le shell ``` Une Page de manuel est incluse From fc7d64f7969123acdae9bc9e7b7024b5abdcf135 Mon Sep 17 00:00:00 2001 From: jukoo Date: Sun, 8 Mar 2026 20:49:09 +0000 Subject: [PATCH 2/4] update fr version manpage --- doc/manpage/{ => en}/bcv.1 | 0 doc/manpage/{bcv.fr.1 => fr/bcv.1} | 136 +++++++++++++++++++++++++++-- 2 files changed, 128 insertions(+), 8 deletions(-) rename doc/manpage/{ => en}/bcv.1 (100%) rename doc/manpage/{bcv.fr.1 => fr/bcv.1} (52%) diff --git a/doc/manpage/bcv.1 b/doc/manpage/en/bcv.1 similarity index 100% rename from doc/manpage/bcv.1 rename to doc/manpage/en/bcv.1 diff --git a/doc/manpage/bcv.fr.1 b/doc/manpage/fr/bcv.1 similarity index 52% rename from doc/manpage/bcv.fr.1 rename to doc/manpage/fr/bcv.1 index 9aa4124..9b9c404 100644 --- a/doc/manpage/bcv.fr.1 +++ b/doc/manpage/fr/bcv.1 @@ -21,6 +21,60 @@ Représentation octale (chiffres 0–7) .TP \fBBase 16\fR Représentation hexadécimale (chiffres 0–15, c’est-à-dire 0–f) + +.SH FONCTIONNALITÉS +.TP +Conversion multi-bases +Affiche les représentations DEC, HEX, OCT et BIN. + +.TP +Détection automatique +Reconnaît automatiquement les préfixes : +0b (binaire), 0x (hexadécimal), 0o (octal). + +.TP +Affichage ASCII +Si la valeur convertie est comprise entre 32 et 127, +le caractère ASCII imprimable correspondant est affiché (CHR). + +.TP +Support des expressions shell +Compatible avec les expressions arithmétiques shell : + + bcv $((10 << 2)) + +.TP +Support des caractères +Les caractères doivent être fournis entre guillemets : + + bcv "#" + +.TP +Mode interactif amélioré +Invite numérotée, support des conversions directes, +détection automatique du type d’entrée. + +.SH OPTIONS +.TP +.B \-b +Conversion explicite en binaire. + +.TP +.B \-o +Conversion explicite en octal. + +.TP +.B \-x +Conversion explicite en hexadécimal. + +.TP +.B \-v +Affiche la version du programme. + +.TP +.B \-h +Affiche l’aide. + .SH UTILISATION .nf Utilisation : bcv [OPTION] ... @@ -29,10 +83,11 @@ Convertir un nombre vers une base spécifique. Ligne directe | Mode interactif | Description ---------------|----------------|----------------------------+ --b | b/ | Conversion en binaire | --x | x/ | Conversion en hexadécimal | --o | o/ | Conversion en octal | - | exit ou quit | Quitter le mode interactif | +-b | b/ | Conversion en binaire | +-x | x/ | Conversion en hexadécimal | +-o | o/ | Conversion en octal | +-c | | Code ascii | + | exit ou quit | Quitter le mode interactif | -------------------------------------------------------------+ -v, 'v' ou '!' Affiche la version du programme -h, 'h' ou '?' Affiche cette aide @@ -48,8 +103,60 @@ o/ → convertir en octal x/ → convertir en hexadécimal .br exit ou quit → quitter le shell interactif -.RE + +\fBSi lancé sans argument\fR: + + $ bcv + +Exemple : + + [1] bcv > 0x12 + DEC: 18 + + [2] bcv > U + DEC: 85 + HEX: 0x55 + OCT: 0125 + BIN: 0b1010101 + CHR: U + +Commandes disponibles : + + b/ → binaire + o/ → octal + x/ → hexadécimal + exit → quitter + quit → quitter + +.SH SORTIE +La sortie standard affiche : + + DEC - représentation décimale + HEX - représentation hexadécimale + OCT - représentation octale + BIN - représentation binaire + CHR - caractère ASCII imprimable (si applicable) + .SH EXEMPLES +.TP +Conversion simple : + bcv 33 + +.TP +Expression shell : + bcv $((1<<2)) + +.TP +Caractère ASCII : + bcv "A" + +.TP +Détection automatique : + bcv 0xFEED + + +.RE +.SH EXEMPLES D'UTILISATION Voici quelques exemples d’utilisation de \fBbcv\fR : .TP Convertir 255 en hexadécimal : @@ -115,12 +222,21 @@ DEC : 19 HEX : 0x13 OCT : 0o23 .fi -.RE +.RE + +.SH INTÉGRATION +bcv repose sur une librairie C locale, +sans dépendance externe. + +Elle peut être intégrée dans d’autres projets logiciels +afin d’effectuer des conversions de bases +directement depuis du code C. + .SH VERSION BaseConverter (bcv) version 1.0.1 par KerHack-Libre .SH AUTEUR -Umar Ba +Umar Ba .br .SH COPYRIGHT @@ -128,5 +244,9 @@ Copyright (c) 2025 KerHack-Libre .br Ce logiciel est libre et distribué SANS AUCUNE GARANTIE. .SH VOIR AUSSI -\fBbc\fR(1) +\fBbc\fR(1) +.SH VOIR AUSSI +.BR bc (1), +.BR xxd (1), +.BR hexdump (1) From 85bf3e1f0f4b40dd10cae5edf442a97054a6e9ad Mon Sep 17 00:00:00 2001 From: jukoo Date: Sun, 8 Mar 2026 20:57:59 +0000 Subject: [PATCH 3/4] move base 10 numerical identifier to hex representation for readability --- src/baseconv.c | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/src/baseconv.c b/src/baseconv.c index 3753e4d..918d48f 100644 --- a/src/baseconv.c +++ b/src/baseconv.c @@ -10,7 +10,7 @@ char bc_global_buffer[0xff]={0} ; -uf64_t __allbase_enable__ = (BIN|CHR|OCT|HEX|429496729600); +uf64_t __allbase_enable__ = (BIN|CHR|OCT|HEX|0x6400000000); char * bc_hex( uf64_t value) { @@ -130,7 +130,7 @@ uf64_t __bcv_guess_base(const char * restrict num , void (*base_printer)(uf64_t) break; default : //! decimal - options&=~429496729600 ; + options&=~0x6400000000 ; value = strtol(num, (void*)0 , 10) ; goto _end; } From 8dd53e68e8b2c1ebfc8db123f9d250407c557690 Mon Sep 17 00:00:00 2001 From: jukoo Date: Sun, 8 Mar 2026 21:01:16 +0000 Subject: [PATCH 4/4] bump version --- doc/manpage/fr/bcv.1 | 4 ++-- meson.build | 2 +- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/doc/manpage/fr/bcv.1 b/doc/manpage/fr/bcv.1 index 9b9c404..d3315fd 100644 --- a/doc/manpage/fr/bcv.1 +++ b/doc/manpage/fr/bcv.1 @@ -1,4 +1,4 @@ -.TH BCV 1 "Octobre 2025" "Version 1.0.1" "Commandes Utilisateur" +.TH BCV 1 "Octobre 2025" "Version 1.2.5" "Commandes Utilisateur" .SH NOM bcv \- convertir des nombres en représentation binaire, octale ou hexadécimale .SH SYNOPSIS @@ -233,7 +233,7 @@ afin d’effectuer des conversions de bases directement depuis du code C. .SH VERSION -BaseConverter (bcv) version 1.0.1 +BaseConverter (bcv) version 1.2.5 par KerHack-Libre .SH AUTEUR Umar Ba diff --git a/meson.build b/meson.build index bde372a..85bd964 100644 --- a/meson.build +++ b/meson.build @@ -44,7 +44,7 @@ bcv_sources=[ 'src/bcvrepl.c' # Contain the repl shell ] -install_man(['doc/manpage/bcv.1']) +install_man(['doc/manpage/fr/bcv.1']) # #NOTICE : The logic of baseconv is builded as External Shared and static library # to make it more extensible