- Given a decimal number (base 10), convert decimal number to octal (base 8) using java.
- We will discuss various methods to convert decimal integer to octal.
- Convert decimal to octal using Integer class
- Integer.toOctalString(int number)
- Integer.toString(int number, int radix)
- Iterative program to convert decimal number to octal number.
- Recursive method to convert decimal number to octal number.
Methods to convert decimal integer to octal :
1.) Convert decimal to octal using Integer.toOctalString
private static String toOctalString(int number) {
return Integer.toOctalString(number);
}
2.) Convert decimal to octal using Integer.toString
private static String toString(int number) {
return Integer.toString(number, 8);
}
3.) Convert decimal to octal using iterative method
private static String iterative(int number) {
StringBuilder builder = new StringBuilder();
while (number > 0) {
builder.append(number % 8);
number /= 8;
}
return builder.reverse().toString();
}
4.) Convert decimal to octal using recursive method
private static String recursive(int number) {
StringBuilder builder = new StringBuilder();
if (number > 0) {
String octalNumber = recursive(number / 8);
int digit = number % 8;
builder.append(octalNumber + digit);
}
return builder.toString();
}
Complete program to convert decimal number to octal
package org.learn;
import java.util.Scanner;
package org.learn;
import java.util.Scanner;
public class DecimalToOctal {
public static void main(String[] args) {
try (Scanner scanner = new Scanner(System.in)) {
System.out.printf("1. Enter decimal number : ");
int number = scanner.nextInt();
String octal = toOctalString(number);
System.out.printf("2. Octal of (%d) using toOctalString method = %s\n", number, octal);
octal = toString(number);
System.out.printf("3. Octal of (%d) using toString method = %s\n", number, octal);
octal = iterative(number);
System.out.printf("4. Octal of (%d) using iterative method = %s\n", number, octal);
octal = recursive(number);
System.out.printf("5. Octal of (%d) using recursive method = %s\n", number, octal);
}
}
private static String toOctalString(int number) {
return Integer.toOctalString(number);
}
private static String toString(int number) {
return Integer.toString(number, 8);
}
private static String iterative(int number) {
StringBuilder builder = new StringBuilder();
while (number > 0) {
builder.append(number % 8);
number /= 8;
}
return builder.reverse().toString();
}
private static String recursive(int number) {
StringBuilder builder = new StringBuilder();
if (number > 0) {
String octalNumber = recursive(number / 8);
int digit = number % 8;
builder.append(octalNumber + digit);
}
return builder.toString();
}
}
Program output – convert decimal number to octal
1. Enter decimal number : 100
2. Octal of (100) using toOctalString method = 144
3. Octal of (100) using toString method = 144
4. Octal of (100) using iterative method = 144
5. Octal of (100) using recursive method = 144
1. Enter decimal number : 25
2. Octal of (25) using toOctalString method = 31
3. Octal of (25) using toString method = 31
4. Octal of (25) using iterative method = 31
5. Octal of (25) using recursive method = 31