使用Java将八进制转换为二进制多种算法实现

413 阅读1分钟

写一个Java程序,将八进制转换为二进制。在Java中,我们可以使用以8为第二个参数的parseInt,将八进制字符串转换为二进制数字:

package Remaining;

public class OctalToBinary1 {
	
	public static void main(String[] args) {
		
		String s1 = "15";
		String s2 = "45";
		String s3 = "122";
		
		int a = Integer.parseInt(s1, 8);
		int b = Integer.parseInt(s2, 8);
		int c = Integer.parseInt(s3, 8);
		
		System.out.println(Integer.toBinaryString(a));
		System.out.println(Integer.toBinaryString(b));
		System.out.println(Integer.toBinaryString(c));
	}
}
1101
100101
1010010

这个Java例子接受八进制字符串并使用parseInt方法将其转换为二进制数:

package Remaining;

import java.util.Scanner;

public class OctalToBinary2 {
	private static Scanner sc;
	
	public static void main(String[] args) {
		
		sc= new Scanner(System.in);

		System.out.print("Please Enter Octal Number =  ");
		String octalString = sc.nextLine();
	
		int decimalVal = Integer.parseInt(octalString, 8);
		String binaryVal = Integer.toBinaryString(decimalVal);
		
		System.out.println("Octal To Binary Result = " + binaryVal);
	}
}

image.png

使用for循环将八进制数转换为二进制数的Java程序。第一个for循环将八进制数转换为十进制数,第二个循环将十进制数转换为二进制数:

package Remaining;

import java.util.Scanner;

public class OctalToBinary3 {
	private static Scanner sc;
	
	public static void main(String[] args) {
		
		sc= new Scanner(System.in);

		System.out.print("Please Enter Number =  ");
		int octalVal = sc.nextInt();
	
		int i, decimalVal = 0;
		long binaryVal = 0;
		
		for(i = 0; octalVal != 0; i++)
		{
			decimalVal = (int) (decimalVal + (octalVal % 10) * Math.pow(8, i));
			octalVal= octalVal / 10;
		}
		
		for(i = 1; decimalVal != 0; i = i * 10)
		{
			binaryVal = binaryVal + (decimalVal % 2) * i;
			decimalVal = decimalVal / 2;
		}
		
		System.out.println("Result = " + binaryVal);
	}
}
Please Enter Number =  124
Result = 1010100

使用while循环将八进制转换为二进制的Java程序:

package Remaining;

import java.util.Scanner;

public class OctalToBinary4 {
	private static Scanner sc;
	
	public static void main(String[] args) {
		
		sc= new Scanner(System.in);

		System.out.print("Please Enter Number = ");
		int octalVal = sc.nextInt();
	
		int i, j, decimalVal = 0;
		long binaryVal = 0;
		i = 0;
		
		while(octalVal != 0)
		{
			decimalVal = (int) (decimalVal + (octalVal % 10) * Math.pow(8, i++));
			octalVal= octalVal / 10;
		}
		j = 1; 
		while(decimalVal != 0)
		{
			binaryVal = binaryVal + (decimalVal % 2) * j;
			decimalVal = decimalVal / 2;
			j = j * 10;
		}
		
		System.out.println("Result    = " + binaryVal);
	}
}
Please Enter Number = 97
Result = 1001111