将八进制转换为二进制的Java程序
给定一个八进制数作为输入,任务是将该数转换为其等效的二进制数。
例子:
Input: Octal Number = 513
Output: Binary equivalent value is: 101001011
Explanation :
Binary equivalent value of 5: 101
Binary equivalent value of 1: 001
Binary equivalent value of 3: 011
八进制数系统:
八进制数系统是一种位置数字系统,其基数或基数为 8,并使用 0 到 7 之间的八个不同数字。
二进制数系统:
二进制数是用基数为 2 的二进制数字系统表示的数字,它只使用两个符号:0 和 1。
八进制到二进制转换表:Octal Binary 0 000 1 001 2 010 3 011 4 100 5 101 6 110 7 111
方法 1:朴素的方法
在这种方法中,八进制数的输入将被视为字符串。此外,完整的字符串将逐个字符地迭代,并且对于每个字符(即八进制数字),字符评估根据上述八进制到二进制转换表的等效二进制值。每次迭代的结果将添加到结果字符串中,所有值的组合将给出所需的二进制数。下面是这个方法的实现。
Java
// Java program to convert
// Octal number to Binary
class OctalToBinary {
// function to convert octal number
// to its binary equivalent value
static String converter(String octalValue)
{
// integer variable to iterate
// the input octal string
int i = 0;
// string to store the result
String binaryValue = "";
// iterating the complete length
// of octal string and assigning
// the equivalent binary value
// for each octal digit
while (i < octalValue.length()) {
// storing character according
// to the number of iteration
char c = octalValue.charAt((int)i);
// switch case to check all
// possible 8 conditions
switch (c) {
case '0':
binaryValue += "000";
break;
case '1':
binaryValue += "001";
break;
case '2':
binaryValue += "010";
break;
case '3':
binaryValue += "011";
break;
case '4':
binaryValue += "100";
break;
case '5':
binaryValue += "101";
break;
case '6':
binaryValue += "110";
break;
case '7':
binaryValue += "111";
break;
default:
System.out.println(
"\nInvalid Octal Digit "
+ octalValue.charAt((int)i));
break;
}
i++;
}
// returning the final result
return binaryValue;
}
// Driver code
public static void main(String args[])
{
System.out.println("Octal to Binary Conversion\n");
// octal number which is to be converted
String octalNumber = "315";
System.out.println("Octal number: " + octalNumber);
// calling the converter method and
// storing the result in a string variable
String result = converter(octalNumber);
System.out.println("Binary equivalent value is: "
+ result);
}
}
Java
// Java program to convert
// Octal number to Binary
public class OctalToBinary {
// function to convert octal number
// to its binary equivalent value
public static int converter(int octalValue)
{
// declaring all variable
// to store the intermediate results
int i = 0;
int decimalValue = 0;
int binaryValue = 0;
// converting octal number
// into its decimal equivalent
while (octalValue != 0) {
decimalValue
+= (octalValue % 10) * Math.pow(8, i);
++i;
octalValue /= 10;
}
i = 1;
// converting generated decimal number
// to its binary equivalent
while (decimalValue != 0) {
binaryValue += (decimalValue % 2) * i;
decimalValue /= 2;
i *= 10;
}
// returning the final result
return binaryValue;
}
// Driver code
public static void main(String[] args)
{
System.out.println("Octal to Binary Conversion\n");
// octal number which is to be converted
int octalNumber = 315;
System.out.println("Octal number: " + octalNumber);
// calling the converter method and
// storing the result in a string variable
int result = converter(octalNumber);
// printing the binary equivalent value
System.out.println("Binary equivalent value is: "
+ result);
}
}
Java
// Java program to convert
// Octal number to Binary
class OctalToBinary {
// function to convert octal number
// to its binary equivalent value
public static String converter(String octalValue)
{
// parsing the string value
// by following octal number system
int octal = Integer.parseInt(octalValue, 8);
// converting octal number to binary
// and storing as a string
String binaryValue = Integer.toBinaryString(octal);
// returning the resultant string
return binaryValue;
}
// Driver code
public static void main(String args[])
{
System.out.println("Octal to Binary Conversion\n");
// octal number which is to be converted
String octalNumber = "315";
System.out.println("Octal number: " + octalNumber);
// calling the converter method and
// storing the result in a string variable
String result = converter(octalNumber);
// printing the binary equivalent value
System.out.println("Binary equivalent value is: "
+ result);
}
}
输出
Octal to Binary Conversion
Octal number: 315
Binary equivalent value is: 011001101
方法二:数学方法
该方法涉及完整的数学计算以获得所需的结果。八进制数的输入将被视为整数。此外,它首先被转换为其十进制等效值,然后使用数学运算从十进制数转换为其二进制等效值。下面是这个方法的实现。
Java
// Java program to convert
// Octal number to Binary
public class OctalToBinary {
// function to convert octal number
// to its binary equivalent value
public static int converter(int octalValue)
{
// declaring all variable
// to store the intermediate results
int i = 0;
int decimalValue = 0;
int binaryValue = 0;
// converting octal number
// into its decimal equivalent
while (octalValue != 0) {
decimalValue
+= (octalValue % 10) * Math.pow(8, i);
++i;
octalValue /= 10;
}
i = 1;
// converting generated decimal number
// to its binary equivalent
while (decimalValue != 0) {
binaryValue += (decimalValue % 2) * i;
decimalValue /= 2;
i *= 10;
}
// returning the final result
return binaryValue;
}
// Driver code
public static void main(String[] args)
{
System.out.println("Octal to Binary Conversion\n");
// octal number which is to be converted
int octalNumber = 315;
System.out.println("Octal number: " + octalNumber);
// calling the converter method and
// storing the result in a string variable
int result = converter(octalNumber);
// printing the binary equivalent value
System.out.println("Binary equivalent value is: "
+ result);
}
}
输出
Octal to Binary Conversion
Octal number: 315
Binary equivalent value is: 11001101
方法 3:使用内置的Java方法
Integer.parseInt() 是Java中的一个内置函数,用于将字符串解析为由基数值(方法的第二个参数)指定的数字系统。在这种方法中,八进制数的输入将被视为字符串。八进制字符串将被解析为八进制数系统的整数值。此外,八进制数将使用另一个内置方法 Integer.toBinaryString() 转换为其等效的二进制数。结果值也将是字符串数据类型。下面是实现。
Java
// Java program to convert
// Octal number to Binary
class OctalToBinary {
// function to convert octal number
// to its binary equivalent value
public static String converter(String octalValue)
{
// parsing the string value
// by following octal number system
int octal = Integer.parseInt(octalValue, 8);
// converting octal number to binary
// and storing as a string
String binaryValue = Integer.toBinaryString(octal);
// returning the resultant string
return binaryValue;
}
// Driver code
public static void main(String args[])
{
System.out.println("Octal to Binary Conversion\n");
// octal number which is to be converted
String octalNumber = "315";
System.out.println("Octal number: " + octalNumber);
// calling the converter method and
// storing the result in a string variable
String result = converter(octalNumber);
// printing the binary equivalent value
System.out.println("Binary equivalent value is: "
+ result);
}
}
输出
Octal to Binary Conversion
Octal number: 315
Binary equivalent value is: 11001101