java用顺序栈实现数制转换 求完整程序!!
发布网友
发布时间:2023-11-26 11:59
我来回答
共5个回答
热心网友
时间:2024-11-06 10:27
用顺序栈实现数制转换的Java程序如下:
import java.util.Scanner;
import java.util.Stack;
public class jin3 {
public static void main(String arg[]){
Scanner y=new Scanner(System.in);
System.out.println("请输入十进制数");
int b=y.nextInt();
jin3 j=new jin3();
j.ErJinZhi(b);
j.BaJinZhi(b);
j.ShiLiuJinZhi(b);
}
//转化成二进制
void ErJinZhi(int a){
Stack<Integer> s=new Stack<Integer>();
String str="";
while(a>0)
{
s.push(a%2);
a=a/2;
}
while(!s.isEmpty()){
str=str+s.pop();
}
System.out.println("二进制是"+str);
}
//转化成八进制
void BaJinZhi(int a){
Stack<Integer> s=new Stack<Integer>();
String str="";
while(a>0)
{
s.push(a%8);
a=a/8;
}
while(!s.isEmpty()){
str=str+s.pop();
}
System.out.println("八进制是"+str);
}
//转化成十六进制
void ShiLiuJinZhi(int a){
int c=0;
String str="";
Stack<Character> s=new Stack<Character>();
while(a>0)
{
c=a%16;
switch(c){
case(10):s.push('A');break;
case(11):s.push('B');break;
case(12):s.push('C');break;
case(13):s.push('D');break;
case(14):s.push('E');break;
case(15):s.push('F');break;
default:s.push((char)(a%16+48));
}
a=a/16;
}
while(!s.isEmpty()){
str=str+s.pop();
}
System.out.println("十六进制是"+str);
}
}
运行结果:
请输入十进制数
28
二进制是11100
八进制是34
十六进制是1C
热心网友
时间:2024-11-06 10:27
import java.util.Scanner;
import java.util.Stack;
public class JinZhiShu {
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
System.out.println("请输入十进制的数:");
int b = sc.nextInt();
JinZhiShu j = new JinZhiShu();
j.ZhuanHuang(b);
}
void ZhuanHuang(int a){
Scanner sc = new Scanner(System.in);
System.out.print("请输入要转换的进制数d=");
int d = sc.nextInt();
Stack<Integer> s = new Stack<>();
String str = "";
while(a>0){
s.push(a%d);
a=a/d;
}
while(!s.isEmpty()){
str=str+s.pop();
}
System.out.println(d+"进制是:" + str);
}
}
热心网友
时间:2024-11-06 10:28
现在的年轻人问问题都懒得说清楚问题!!!
热心网友
时间:2024-11-06 10:28
你们问题太笼统了,是不是要求用栈进行进制之间的转换
热心网友
时间:2024-11-06 10:29
数制转换?数值转换?数字转换?转换成什么?