Вот программа на Java, которая преобразует двоичное число в его восьмеричный эквивалент, используя различные методы:
Метод 1: использование функций Integer.parseInt() и Integer.toOctalString()
import java.util.Scanner;
public class BinaryToOctal {
public static void main(String[] args) {
Scanner scanner = new Scanner(System.in);
System.out.print("Enter a binary number: ");
String binary = scanner.nextLine();
int decimal = Integer.parseInt(binary, 2);
String octal = Integer.toOctalString(decimal);
System.out.println("Octal equivalent: " + octal);
}
}
Метод 2: использование Integer.parseInt() и StringBuilder
import java.util.Scanner;
public class BinaryToOctal {
public static void main(String[] args) {
Scanner scanner = new Scanner(System.in);
System.out.print("Enter a binary number: ");
String binary = scanner.nextLine();
int decimal = Integer.parseInt(binary, 2);
StringBuilder octal = new StringBuilder();
while (decimal != 0) {
octal.insert(0, decimal % 8);
decimal /= 8;
}
System.out.println("Octal equivalent: " + octal);
}
}
Метод 3. Использование побитовых операций
import java.util.Scanner;
public class BinaryToOctal {
public static void main(String[] args) {
Scanner scanner = new Scanner(System.in);
System.out.print("Enter a binary number: ");
String binary = scanner.nextLine();
int decimal = 0;
int power = 0;
for (int i = binary.length() - 1; i >= 0; i--) {
int bit = binary.charAt(i) - '0';
decimal += bit << power;
power++;
}
StringBuilder octal = new StringBuilder();
while (decimal != 0) {
octal.insert(0, decimal % 8);
decimal /= 8;
}
System.out.println("Octal equivalent: " + octal);
}
}