當前位置:編程學習大全網 - 編程軟體 - java方法利用棧,將十進制數轉換成八進制的數

java方法利用棧,將十進制數轉換成八進制的數

import java.util.Scanner;

import java.util.Stack;/**

* 將十進制數轉換為八進制數

*

* @author austin

*/

public class DecimalToOctalConvertor { /**

* @param args

*/

public static void main(String[] args) {

/*

* 接收壹個用戶從通過鍵盤輸入的整數,作為要轉換的十進制數

*/

Scanner reader = new Scanner(System.in);

System.out.print("請輸入要轉換的十進制數:");

int decimalNum = reader.nextInt(); /*

* 采用除8取余,從下至上的算法來計算八進制數:即用進制數除以8,然後將所得余數作為8進制數的低位數,再用所得的商繼續除以8,以此類推,直到商為0為止

* 在這個過程中,每次的余數都需要保存到壹個列表中,而且後添加到列表中的元素要先輸出,即後進先出,因此采用棧結構來處理

*/

Stack<Integer> octalStack = new Stack<Integer>();

int temp = decimalNum;

do {

octalStack.push(temp % 8); // 將除以8所得的余數添加到棧中

temp /= 8; // 計算除以8所得的商

}

while (temp != 0); // 如果商不為0,則繼續計算下去 /*

* 采用後進先出的方式輸入棧中的元素,就得到了所要求的八進制數

*/

System.out.print("八進制:0");

while (!octalStack.isEmpty()) {

System.out.print(octalStack.pop());

}

System.out.println();

}

}

  • 上一篇:C語言編程:求出壹維數組中最小元素的值以及它所在的下標號
  • 下一篇:vlookup函數怎樣查找兩個條件並且匹配?
  • copyright 2024編程學習大全網