java方法利用栈,将十进制数转换成八进制的数
如题用JAVA写出利用栈,将十进制数转换成八进制的数。最好代码带注释方便小弟学习。谢谢各位高手了。...
如题用JAVA写出 利用栈,将十进制数转换成八进制的数。最好代码带注释方便小弟学习。谢谢各位高手了。
展开
推荐于2017-10-12
展开全部
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();
}
}
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();
}
}
2013-10-17
展开全部
import java.util.Scanner;import java.util.Stack;
public class TimeTest {
public static void main(String[] args) { Stack<Integer> s = new Stack<Integer>(); Scanner scan = new Scanner(System.in); int i; i = scan.nextInt(); while(i != 0){ s.push(i % 8); i = i / 8; } while(!s.empty()){ System.out.print(s.pop()); } }}
public class TimeTest {
public static void main(String[] args) { Stack<Integer> s = new Stack<Integer>(); Scanner scan = new Scanner(System.in); int i; i = scan.nextInt(); while(i != 0){ s.push(i % 8); i = i / 8; } while(!s.empty()){ System.out.print(s.pop()); } }}
本回答被网友采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询