Encoders & Utilities

Convertisseur de base numérique

Convertit entre binaire, octal, décimal et hexadécimal. Supporte BigInt et opérations bit-à-bit avec largeurs signées.

Bitwise operations

À propos de cet outil

Number Base Converter traduit un entier entre binaire (base 2), octal (base 8), décimal (base 10) et hexadécimal (base 16). Tapez la valeur dans n'importe lequel des quatre champs de saisie et les trois autres se mettent à jour en synchronisation. Les mathématiques en précision arbitraire sont intégrées — collez un hash de 1024 bits et vous obtenez toujours une réponse exacte, pas d'arrondi en virgule flottante.

Un deuxième panneau exécute des opérations bit à bit sur la même valeur : AND, OR, XOR, NOT, décalage gauche, décalage droite, décalage droite arithmétique. Pour chaque opération vous choisissez la largeur entière (8/16/32/64 bits, signé ou non signé) afin que les représentations en complément à deux soient affichées correctement — 0xFF est 255 en u8 mais -1 en i8, et l'outil étiquette les deux. Un aperçu binaire en direct met en évidence les positions de bits individuelles afin que vous puissiez voir exactement ce qui a basculé.

Quand utiliser cet outil

  • Lire et écrire des drapeaux de configuration. Beaucoup d'API utilisent des drapeaux bitmask ; convertir 0b10110 en 22 ou inversement est une taxe quotidienne dans ce style.
  • Déboguer les dumps hex. Un octet affichant 0xC0 en mémoire ? C'est 192 décimal, 0b11000000 binaire.
  • Calculer les valeurs de couleur. Les couleurs hex CSS, codes d'échappement ANSI et flux d'octets de format d'image vivent tous en hex.
  • Travailler avec les permissions de fichier. 0o7550b111101101 — la conversion est la fondation du Chmod Calculator.

À propos de BigInt et des largeurs signées

Le Number natif de JavaScript perd en précision au-delà de 2^53. Nous utilisons BigInt pour la valeur elle-même, donc tout entier que vous pouvez écrire rentre. Les largeurs signées comptent pour les nombres négatifs : le complément à deux à 8 bits dit 0b10000000 = -128 ; à 16 bits le même pattern est 32768. L'outil vous montre toujours les deux interprétations donc la bonne est juste un coup d'œil.

Questions fréquentes

Pourquoi 0xFF apparaît-il à la fois comme 255 et -1 ?

Parce que le pattern d'octets est le même — la signification dépend de si vous le traitez comme non signé (u8 = 255) ou complément à deux signé (i8 = -1). Le matériel ne sait pas lequel ; le système de types le sait. Nous montrons les deux interprétations afin que vous puissiez lire la valeur de la façon dont votre code l'attend. Pour les entiers plus larges (u32 vs i32) la même logique s'applique avec différents points de rupture.

Quelle taille de nombre l'outil peut-il gérer ?

Arbitraire — nous utilisons BigInt JavaScript en interne, donc les clés RSA de 4096 bits se convertissent aussi facilement que les octets 8 bits. Le panneau d'opérations bit à bit nécessite une largeur (8 à 64 bits, signée ou non signée) pour que le complément à deux soit défini ; au-delà de 64 bits nous traitons toutes les valeurs comme non signées et ne montrons pas d'interprétations négatives. Pour les nombres à l'échelle cryptographique, décimal/hex/binaire fonctionnent tous, mais le tableau bit à bit s'arrête raisonnablement à 64.

Quelle est la convention de préfixe ?

La plupart des écosystèmes s'accordent : 0b pour binaire (Python, JS, Rust), 0o pour octal (Python, JS, Rust — la forme plus ancienne avec zéro de tête nu est obsolète), 0x pour hex (universel). Notre outil accepte les entrées avec ou sans préfixes et émet toujours les résultats sous la forme préfixée conventionnelle. C/C++ utilise le zéro de tête nu pour l'octal (0755), ce qui est un piège — nous ne sortons jamais cette forme.

Pourquoi le décalage-droite se comporte parfois différemment ?

Il y a deux décalages-droite : logique (>>>) remplit les bits hauts avec 0 — utilisé pour les valeurs non signées. Arithmétique (>>) remplit avec le bit de signe — préserve le signe des nombres négatifs en complément à deux. -8 >> 1 = -4 (arithmétique) mais -8 >>> 1 = 2147483644 (logique, 32 bits). L'outil expose les deux comme boutons séparés.