二进制数字系统由两个符号组成:0(零)和 1(一),分别代表数字电子学中的低或关闭和高或开启状态。它主要是一个以 2 为底的数字系统,也广泛用于计算机科学。所有数据都存储在计算机中的二进制符号中,也称为位。二进制系统的名称源于它仅由两个符号组成的事实。二进制数也可以被认为是一个只有 0 和 1 的字符串。
八进制数系统包括从 0 到 7 的八位数字。它的名称源于它由八位数字组成(因此是 Oct),这意味着八位。它是一个 8 基数系统,可以通过将二进制数中的位分组为三个一组并将每个组的对应值计算为所得八进制数中的单个数字来制定。
例:
Input: 100100 Output: 44 Input: 1100001 Output: 141
在本文中,我们将探讨两种将二进制数转换为八进制数的方法。这些方法如下:
- 在 Java 中使用 内置 toOctalString() 方法
- 将二进制数转换为十进制数,然后再转换为相应的八进制数。
方法一:
使用这种方法,我们首先将二进制数转换为 Integer,然后使用 java 的 toOctalString() 内置 方法将其转换为八进制数字符串。然后该字符串再次转换为 Integer。
用法:
public static String toOctalString(int num)
参数:该方法接受需要转换为字符串的整数类型的单个参数 num。
返回值:该函数将整数参数的字符串表示形式返回为以 8 为底的无符号整数。
算法:
- 将二进制数转换为十进制数。
- 使用 toOctalString() 方法将此十进制数转换为八进制数字符串。
- 再次将此字符串转换为整数。
例:
Java
// Java program to convert binary to octal
class GFG {
// method to convert binary to decimal
int binaryToDecimal(long binary)
{
// variable to store the decimal number
int decimalNumber = 0, i = 0;
// loop to extract the digits of the
// binary number
while (binary > 0) {
// multiplying each digit of binary
// with increasing powers of 2 towards
// left
decimalNumber
+= Math.pow(2, i++) * (binary % 10);
// dividing the binary by 10
// to remove the last digit
binary /= 10;
}
// returning the converted decimal number
return decimalNumber;
}
// function to convert decimal to octal
int decimalToOctal(long binary)
{
// variable to store the decimal number
// returned by the binaryToDecimal()
int decimalNumber = binaryToDecimal(binary);
// using the toOctalString() to convert
// Integer to String of Octal Number
String octalString
= Integer.toOctalString(decimalNumber);
// converting the String of octal number
// to an Integer
int octalNumber = Integer.parseInt(octalString);
// returning the octal number
return octalNumber;
}
// Driver Code
public static void main(String[] args)
{
// instantiating the class
GFG ob = new GFG();
// calling and printing the decimalToOCtal
// method
System.out.println("octal number:"+ob.decimalToOctal(100100));
}
}
输出
octal number:44
方法二:
使用这种方法,我们首先将二进制数转换为十进制数。然后,我们通过不断提取余数并除以 8 将这个十进制数转换为八进制数。
算法:
- 将二进制数转换为十进制数。
- 现在,对于这个转换后的十进制数,运行一个 while 循环,直到这个数字变为 0。
- 在循环的每次迭代中,通过将数字除以 8 来获得余数。
- 将此余数乘以 10 的递增幂。
- 最后把原来的数除以8。
例:
Java
// Java program to convert binary to octal
class GFG {
// function to convert binary number
// to decimal number
int binaryToDecimal(long binary)
{
// variable to store the converted
// decimal number
int decimalNumber = 0, i = 0;
// loop to convert binary to decimal
while (binary > 0) {
// extracting every digit of the
// binary and multiplying with
// increasing powers of 2
decimalNumber
+= Math.pow(2, i++) * (binary % 10);
// dividing the number by 10
// to remove the last digit
binary /= 10;
}
// returning the converted decimal
// number
return decimalNumber;
}
// function to convert decimal number
// to octal
int decimalToOctal(long binary)
{
// variable to store the octal number
int octalNumber = 0, i = 0;
// variable to store the output
// returned by the binaryToDecimal()
int decimalNumber = binaryToDecimal(binary);
// loop to convert decimal to octal
while (decimalNumber != 0) {
// extracting the remainder on
// multiplying by 8 and
// dividing that with increasing
// powers of 10
octalNumber += (decimalNumber % 8)
* ((int)Math.pow(10, i++));
// removing the last digit by
// dividing by 8
decimalNumber /= 8;
}
// returning the converted octal number
return octalNumber;
}
// Driver Code
public static void main(String[] args)
{
// instantiating the class
GFG ob = new GFG();
// calling and printing the
// decimalToOctal() function
System.out.println(ob.decimalToOctal(1001001));
}
}
输出
111
相关用法
- Java Octal转Binary用法及代码示例
- Java Octal转Decimal用法及代码示例
- Java Binary转Hexadecimal用法及代码示例
- Java Hexadecimal转Binary用法及代码示例
- Python binary转ASCII用法及代码示例
- Python Binary转Hexadecimal用法及代码示例
- Java java.sql.Date转java.util.Date用法及代码示例
- Java java.util.Date转java.sql.Date用法及代码示例
- Java TimeStamp转Date用法及代码示例
- Java Integer List转Integer Array用法及代码示例
注:本文由纯净天空筛选整理自ag01harshit大神的英文原创作品 Java Program to Convert Binary to Octal。非经特殊声明,原始代码版权归原作者所有,本译文未经允许或授权,请勿转载或复制。