1. Overview
In this tutorial, we’ll look briefly at the different ways of printing an integer in binary format in Java.
First, we’ll take a conceptual look. And then, we’ll learn some built-in Java functions for conversion.
2. Using Integer to Binary Conversion
In this section, we’ll write our custom method to convert an integer into a binary format string in Java. Before writing the code, let’s first understand how to convert an integer into a binary format.
To convert an integer n into its binary format, we need to:
- Store the remainder when number n is divided by 2 and update the number n with the value of the quotient
- Repeat step 1 until the number n is greater than zero
- Finally, print the remainders in reverse order
Let’s see an example of converting 7 into its binary format equivalent:
- First, divide 7 by 2: remainder 1, quotient 3
- Second, divide 3 by 2: remainder 1, quotient 1
- Then, divide 1 by 2: remainder 1, quotient 0
- And finally, print the remainders in reverse order since the quotient in the previous step is 0: 111
Next, let’s implement the above algorithm:
public static String convertIntegerToBinary(int n) {
if (n == 0) {
return "0";
}
StringBuilder binaryNumber = new StringBuilder();
while (n > 0) {
int remainder = n % 2;
binaryNumber.append(remainder);
n /= 2;
}
binaryNumber = binaryNumber.reverse();
return binaryNumber.toString();
}
3. Using Integer#toBinaryString Method
Java’s Integer class has a method named toBinaryString to convert an integer into its binary equivalent string.
Let’s look at the signature of the Integer#toBinaryString method:
public static String toBinaryString(int i)
It takes an integer argument and returns a binary string representation of that integer:
int n = 7;
String binaryString = Integer.toBinaryString(n);
assertEquals("111", binaryString);
4. Using Integer#toString Method
Now, let’s look at the signature of the Integer#toString method:
public static String toString(int i, int radix)
The Integer#toString method is an in-built method in Java that takes two arguments. First, it takes an integer that is to be converted to a string. Second, it takes radix that is to be used while converting the integer into its string representation.
It returns a string representation of the integer input in the base specified by the radix.
Let’s use this method to convert an integer into its binary format using a radix value of 2:
int n = 7;
String binaryString = Integer.toString(n, 2);
assertEquals("111", binaryString);
As we can see, we passed the radix value of 2 while calling the Integer#toString method to convert the integer n into its binary string representation.
5. Getting the N-Bit (Zero-Padded) Binary Representation
We’ve learned how to get an integer’s binary format string. Sometimes, we’d like to have a 4-bit, 8-bit, or 16-bit binary representation. For example, here’s what the integer 7 (111) ‘s 4-, 8- and 16-bit representations look like:
- 4-bit: 0111
- 8-bit: 00000111
- 16-bit: 0000000000000111
Next, let’s take the 8-bit format as an example to see how to get the binary string in the required format.
One way to achieve that is to use the String#format() function to format the binary string into a space-padded string. Then, we replace each space character with a 0:
int n = 7;
String binaryString = String.format("%8s", Integer.toBinaryString(n)).replace(" ","0");
assertEquals("00000111", binaryString);
Some popular libraries also offer the padding helper methods. For example, the StringUtils class from Apache Commons Lang 3 provides the leftPad() method, which allows us to left-pad a string with specified characters easily:
int n = 7;
String binaryString = StringUtils.leftPad(Integer.toBinaryString(n), 8, "0");
assertEquals("00000111", binaryString);
6. Conclusion
In this article, we looked at integer to binary conversion. Furthermore, we saw a couple of built-in Java methods to convert an integer into a string in binary format.
As always, all these code samples are available over on GitHub.