首页 > Java > java教程 > 正文

Java程序示例,说明八进制整数的使用方法

WBOY
发布: 2023-08-28 18:05:07
转载
1244 人浏览过

Java程序示例,说明八进制整数的使用方法

八进制整数是以 8 为基数、从 0 到 7 的数字的数字系统。存储八进制数时考虑到 Int 数据类型。

这里将讨论八进制数系统的使用方式 −

  • 将十进制转换为八进制

  • 将八进制转换为十进制。

从十进制数字系统到八进制数字系统的转换

转换的基础知识

  • 将任何十进制数转换为相应的八进制数:

  • 继续将十进制数除以八进制数系统的基数 8,直到收到商 0。

  • 记得在每一步都记录余数。

  • 最后将余数倒着写出,得到的数就是对应的八进制数。

  • 让我们看一些示例,以便更好地理解这个概念。

示例 1 - 考虑十进制数 2894 并找出其等价的八进制数。

Decimal	    Division		Quotient		Remainder

2894	    2894 / 8		461			6
461	    461 / 8		57			5
57	    57 / 8		7			1
7	    7 / 8		0			7
登录后复制

因此,7156 是十进制数 2894 的等价八进制数。

示例2 - 考虑另一个十进制数 101 并找出其八进制等价物。

Decimal	        Division	Quotient		Remainder

101		101 / 8		12				5
12 		12 / 8		1				4
1 	   	1 / 8		0				1 
登录后复制

因此,145 是十进制数 101 的等价八进制数。

Example

的中文翻译为:

示例

以下程序使用自定义逻辑将十进制数转换为其相应的八进制数。在名为 DecimalToOctal1 的类中创建带有 1 个参数的名为 DectoOctal 的方法,以演示八进制数字系统的工作原理。此处,十进制数 15 作为实际参数传递给创建的方法,并使用自定义逻辑将其转换为相应的八进制数。

//Java Program to illustrate the decimal to octal conversion
//using custom logic
public class DecimalToOctal1 {
   
   //creating a method to convert decimal numbers into octal numbers
   public static String DectoOctal(int dec) {
      int r;
      String octal="";
      
      //declaring and initializing an array octalchr
      char octalchr[]= {'0', '1', '2', '3', '4', '5', '6', '7'};
      
      //logic for conversion
      while(dec>0) {
         r=dec%8;
         octal=octalchr[r]+octal;
         dec=dec/8;
      }
      return octal;
   }
   public static void main(String args[]) {
      
      //Invoking the above method to get the octal number of the below decimal numbers
      System.out.println("Octal equivalent of decimal number 15 is: "+DectoOctal(15));
      System.out.println("Octal equivalent of decimal number 24 is: "+DectoOctal(24));
      System.out.println("Octal equivalent of decimal number 7 is: "+DectoOctal(7));
      System.out.println("Octal equivalent of decimal number 5 is: "+DectoOctal(5));
   }
}
登录后复制

输出

Octal equivalent of decimal number 15 is: 17
Octal equivalent of decimal number 24 is: 30
Octal equivalent of decimal number 7 is: 7
Octal equivalent of decimal number 5 is: 5
登录后复制

Example

的中文翻译为:

示例

以下程序使用库函数将十进制数转换为对应的八进制数。在一个名为DecimalToOctal2的类中,使用库函数Integer.toOctalString()将四个不同的十进制数转换为它们对应的八进制值。

//Java Program to demonstrate the conversion of decimal number into its equivalent octal number using a library function
public class DecimalToOctal2 {
   public static void main(String args[]) {
      //By the usage of the Integer.toOctalString() library method
      //to convert a decimal value into a corresponding octal number

      System.out.println("Octal equivalent of decimal number 15 is:" +Integer.toOctalString(15));
      System.out.println("Octal equivalent of decimal number 24 is:" +Integer.toOctalString(24));
      System.out.println("Octal equivalent of decimal number 7 is:" +Integer.toOctalString(7));
      System.out.println("Octal equivalent of decimal number 5 is:" +Integer.toOctalString(5));
   }
}
登录后复制

输出

Octal equivalent of decimal number 15 is:17
Octal equivalent of decimal number 24 is:30
Octal equivalent of decimal number 7 is:7
Octal equivalent of decimal number 5 is:5
登录后复制

从八进制数字系统到十进制数字系统的转换

转换的基础知识

  • 要将任何八进制数转换为其等效的十进制数:

  • 将十进制数中的每一位数字与八进制数的底数 8 的减幂(直到 0 次幂)相乘。

  • 让我们看一些示例,以便更好地理解这个概念。

示例1 − 让我们考虑一个八进制数456 并找出它的十进制等价数。

456 = (4 * 8^2) + (5 * 8^1) + (6 * 8^0)
   = (4 * 64) + (5 * 8) + (6 * 1)
   = 256 + 40 + 6
   = 302
登录后复制

因此,302 是八进制数 456 的等价十进制数。

示例2 - 让我们考虑另一个八进制数152并找出它的十进制等价数。

152 = (1 * 8^2) + (5 * 8^1) + (2 * 8^0)
   = (1 * 64) + (5 * 8) + (2 * 1)
   = 64 + 40 + 2
   = 106
登录后复制

因此,106是八进制数152的等价十进制数。

Example

的中文翻译为:

示例

以下程序使用自定义逻辑将十进制数转换为其相应的八进制数。在名为 OctalToDecimal1 的类中创建带有 1 个参数的名为 OctToDec 的方法,以演示八进制数字系统的工作原理。这里,四个不同的八进制数作为实际参数传递给创建的方法,并使用自定义逻辑将其转换为相应的十进制数。

//Java Program to illustrate the conversion of Octal to Decimal
//using custom logic
public class OctalToDecimal1 {
   //Declaring a method to perform a conversion
   public static int OctToDec(int oct) {
      //Declaring variable to store a decimal number
      int dec = 0;
      //Declaring variable to use in power
      int p = 0;
      //generating the logic
      while(true) {
         if(oct == 0) {
         break;
         } else {
            int t = oct % 10;
            dec += t * Math.pow(8, p);
            oct = oct / 10;
            p++;
         }
      }
      return dec;
   }
   public static void main(String args[]) {
      //displaying the result of the conversion
      System.out.println("Equivalent Decimal of octal number 673 is: "+OctToDec(673));
      System.out.println(" Equivalent Decimal of octal number 71 is: "+OctToDec(23));
      System.out.println("Equivalent Decimal of octal number 100 is: "+OctToDec(100));
      System.out.println("Equivalent Decimal of octal number 88 is: "+OctToDec(10));
   }
}
登录后复制

输出

Equivalent Decimal of octal number 673 is: 443
Equivalent Decimal of octal number 71 is: 19
Equivalent Decimal of octal number 100 is: 64
Equivalent Decimal of octal number 88 is: 8
登录后复制

Example

的中文翻译为:

示例

以下程序使用库函数将八进制数转换为相应的十进制数。在一个名为OctalToDecimal2的类中,将四个不同的八进制数作为输入传递给库方法Integer.parseInt(),并将其转换为相应的十进制数。

//Java Program to demonstrate the conversion of an octal number into its equivalent decimal number using a library function
public class OctalToDecimal2 {
   public static void main(String args[]) {
      System.out.println("Equivalent Decimal of octal number 673 is " + Integer.parseInt("673",8));
      System.out.println("Equivalent Decimal of octal number 673 is " + Integer.parseInt("23",8));
      System.out.println("Equivalent Decimal of octal number 673 is " + Integer.parseInt("100",8));
      System.out.println("Equivalent Decimal of octal number 673 is " + Integer.parseInt("10",8));
   }
}
登录后复制

输出

Equivalent Decimal of octal number 673 is 443
Equivalent Decimal of octal number 673 is 19
Equivalent Decimal of octal number 673 is 64
Equivalent Decimal of octal number 673 is 8
登录后复制

结论

本文阐明了八进制数的用法。这里通过一些例子和java程序讨论了八进制和十进制之间的转换方法。

以上是Java程序示例,说明八进制整数的使用方法的详细内容。更多信息请关注PHP中文网其他相关文章!

相关标签:
来源:tutorialspoint.com
本站声明
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn
热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板
关于我们 免责声明 Sitemap
PHP中文网:公益在线PHP培训,帮助PHP学习者快速成长!