HOWTO · Java
Convertir Int en binaire en Java
Cet article explique les méthodes pour convertir un int en binaire en Java
Sur cette page
Pour convertir un int en String binaire en Java, utilisez Integer.toBinaryString(value) pour la représentation habituelle, Integer.toString(value, 2) pour préciser la base, ou une boucle StringBuilder pour illustrer l’algorithme de conversion. Les sections ci-dessous expliquent la représentation renvoyée par chaque approche et les cas où la boucle manuelle convient.
Convertir un int en binaire avec Integer.toBinaryString() en Java
Integer.toBinaryString() accepte un int et renvoie ses chiffres binaires sous forme de String. Pour la valeur 150, le résultat ne comporte aucun zéro initial et s’écrit 10010110. C’est une solution concise lorsque vous avez besoin de la représentation binaire d’un entier.
Exécutez cet exemple :
Le code et les libellés ou sorties affichés dans cette section restent en anglais.
public class JavaExample {
public static void main(String[] args) {
int value = 150;
String binary = Integer.toBinaryString(value);
System.out.println(binary);
}
}
10010110
Pour un int négatif, cette méthode renvoie sa représentation en complément à deux sur 32 bits, avec des bits 1 initiaux si nécessaire. Ce résultat de largeur fixe diffère d’un nombre binaire signé précédé d’un signe moins.
Convertir un int en binaire avec Integer.toString() en Java
Integer.toString(value, radix) convertit la valeur en chaîne selon la base indiquée. Passez 2 pour obtenir une représentation binaire. Pour les entiers positifs, le résultat a la même forme sans zéros initiaux que celui de Integer.toBinaryString(). Cette surcharge est utile lorsque la base est un paramètre d’une routine de conversion plus générale.
Exécutez cet exemple :
Le code et les libellés ou sorties affichés dans cette section restent en anglais.
public class JavaExample {
public static void main(String[] args) {
int value = 200;
String binary = Integer.toString(value, 2);
System.out.println(binary);
}
}
11001000
Pour les valeurs négatives, Integer.toString(value, 2) place un signe moins devant les chiffres de la valeur absolue. Choisissez cette méthode si l’appelant a besoin de cette représentation signée. Les deux méthodes de la bibliothèque acceptent toute la plage des valeurs int de Java ; aucune ne permet de choisir une largeur d’affichage ni d’ajouter des zéros initiaux aux valeurs positives.
Convertir un int en binaire avec StringBuilder et une boucle en Java
Une conversion manuelle permet de montrer comment chaque chiffre est obtenu. Cette implémentation n’accepte que les valeurs non négatives. Elle traite zéro à part, car une boucle exécutée tant que la valeur est supérieure à zéro n’ajouterait sinon aucun chiffre. Pour toute autre valeur, des divisions successives par deux produisent des restes égaux à 0 ou à 1, du bit de poids faible au bit de poids fort. Il faut donc inverser les chiffres recueillis avant de les renvoyer.
Exécutez cet exemple avec une valeur non négative :
Le code et les libellés ou sorties affichés dans cette section restent en anglais.
public class JavaExample {
static String convertIntToBinary(int value) {
if (value < 0) {
throw new IllegalArgumentException("value must be nonnegative");
}
if (value == 0) {
return "0";
}
StringBuilder digits = new StringBuilder();
while (value > 0) {
digits.append(value % 2);
value /= 2;
}
return digits.reverse().toString();
}
public static void main(String[] args) {
System.out.println(convertIntToBinary(150));
}
}
10010110
La méthode manuelle est utile pour comprendre le processus de divisions successives ou l’adapter à une représentation particulière. Sa vérification explicite empêche qu’une valeur négative produise silencieusement une chaîne vide. Pour convertir des valeurs signées de manière générale, préférez l’une des méthodes de la bibliothèque et choisissez-la selon la représentation souhaitée pour les valeurs négatives.