Java程序将二进制转换为八进制


二进制数 - 根据基值,存在多种类型的数字系统。二进制数就是其中之一。二进制数基本上由两个数字表示,即一 (1) 和零 (0)。二进制数在数字系统中表示为以 2 为基数。

八进制数 - 八进制数也是一种可用的数字系统。八进制数用 8 个数字表示,从 0 到 7 (0、1、2、3... 7)。八进制数在数字系统中表示为以 8 为基数。

这里我们将二进制数转换为八进制数,但为此,我们必须首先将二进制数转换为十进制数,以便之后可以使用toOctalString() 方法将该十进制数转换为八进制数。

Binary Number → Decimal Number → Octal Number

toOctalString() 方法Integer 类的内置函数。

语法

public static String toOctalString(int i)

问题陈述

编写一个Java程序,将二进制数转换为八进制数 -

输入-1

Input Binary number is 101011.

输出-1

By converting into decimal = 43.
Now converting it to octal = 53

输入-2

Input Binary number is 1111111.

输出-2

By converting into decimal = 127
Now converting it to octal = 177

输入-3

Input Binary number is 11001100.

输出-3

By converting into decimal = 204.
Now converting it to octal = 314.

将二进制转换为八进制的方法

我们提供了不同方法的解决方案 -

方法-1:使用带静态输入值的自定义方法

在这种方法中,我们声明一个长变量,用程序中的二进制数对其进行初始化,并将此数字作为参数传递给自定义方法,然后在方法内部,通过使用算法,我们可以将二进制数转换为八进制数。

  • 开始
  • 导入java.util.*并定义Main 类
  • 声明一个具有静态值的long变量binary。
  • 将二进制转换为十进制,然后将十进制转换为八进制并打印值。
  • 停止

示例

以下是使用静态输入方法将二进制数转换为八进制数的示例 -

import java.util.*;
public class Main {
   public static void main(String[] args){
      long binary=1010;
      binToDec(binary);
   }
   public static void binToDec(long binaryNumber){
      int decNum = 0, i = 0;
      while (binaryNumber > 0) {
         decNum += Math.pow(2, i++) * (binaryNumber % 10);
         binaryNumber /= 10;
      }
      System.out.println("In Decimal="+decNum);
      decToOct(decNum);
   }
   public static void decToOct(long decNum){
      String octalString = Long.toOctalString(decNum);
      int octalNumber = Integer.parseInt(octalString);
      System.out.println("In octal="+octalNumber);
   }
}

输出

In Decimal=10
In octal=12

方法-2:使用带用户输入值的自定义方法

在这种方法中,我们声明一个二进制输入数,并将此数字作为参数传递给自定义方法,然后在方法内部,通过使用算法,我们可以将二进制数转换为十六进制数。

  • 开始
  • 导入java.util.*并定义Main 类
  • 获取二进制数的用户输入。
  • 调用用户定义的方法进行转换。
  • 将二进制转换为十进制,然后将十进制转换为八进制并打印值。
  • 停止。

示例

以下是使用用户定义的方法将二进制数转换为八进制数的示例 -

import java.util.*;
public class Main {
   public static void main(String[] args){
      Scanner sc = new Scanner(System.in);
      System.out.print("Enter a binary number: ");
      long binary=sc.nextLong();
      binToDec(binary);
   }
   public static void binToDec(long binaryNumber){
      int decNum = 0, i = 0;
      while (binaryNumber > 0) {
         decNum += Math.pow(2, i++) * (binaryNumber % 10);
         binaryNumber /= 10;
      }
      System.out.println("In Decimal="+decNum);
      decToOct(decNum);
   }
   public static void decToOct(long decNum){
      String octalString = Long.toOctalString(decNum);
      int octalNumber = Integer.parseInt(octalString);
      System.out.println("In octal="+octalNumber);
   }
}

输出

Enter a binary number: 1111
In Decimal=15
In octal=17

在本文中,我们探讨了如何通过使用不同的方法在 Java 中将二进制转换为八进制。

更新于: 2024 年 8 月 2 日

2K+ 次查看

开启您的职业生涯

通过完成课程获得认证

开始
广告

© . All rights reserved.