Toutes les bases reposent sur la numération de position : chaque chiffre vaut chiffre × base^position. Le décimal 345 vaut 3×10² + 4×10¹ + 5×10⁰, et le binaire 1101 vaut 1×2³ + 1×2² + 0×2¹ + 1×2⁰ = 13. Pour l’opération inverse, on divise successivement par la base cible et on lit les restes à l’envers : 13 divisé par 2 donne les restes 1, 0, 1, 1, soit 1101. Saisissez une valeur dans n’importe quel champ : les trois autres bases se mettent à jour instantanément.
L’hexadécimal utilise 0–9 et A–F pour les valeurs 0 à 15, et chaque chiffre hex correspond exactement à quatre bits. Un octet (8 bits) s’écrit donc avec deux chiffres hex : 255 = FF = 11111111. C’est pourquoi les codes couleur (#FF8800), adresses mémoire, empreintes et adresses MAC sont en hex : bien plus court que le binaire, et facile à retraduire en bits. Chaque chiffre octal correspond à trois bits ; son usage le plus connu concerne les droits Unix : chmod 755 donne rwx au propriétaire (7 = 111) et r-x au groupe et aux autres (5 = 101).
Les nombres JavaScript ordinaires ne peuvent plus représenter chaque entier au-delà de 2⁵³ − 1 (9 007 199 254 740 991) : de nombreux convertisseurs faussent alors sans prévenir les longues chaînes hex ou les identifiants 64 bits. Cet outil utilise BigInt, qui garde exacts les entiers de toute longueur, idéal pour les ID de base de données, adresses blockchain et masques de bits.
Chaque champ n’accepte que des chiffres valides : binaire 0–1, octal 0–7, décimal 0–9 et hexadécimal 0–9 et A–F, majuscules ou minuscules. Les préfixes vus dans le code, 0b pour le binaire, 0o pour l’octal et 0x pour l’hex, ne sont que des marqueurs : retirez-les avant de coller.