首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > JAVA > J2SE开发 >

帮忙做一下, java中不是没有二进制嘛?该怎么解决

2012-02-12 
帮忙做一下, java中不是没有二进制嘛?编写一个完整程序。实现从键盘输入一个十进制的正整数。利用栈的基本操

帮忙做一下, java中不是没有二进制嘛?
编写一个完整程序。实现从键盘输入一个十进制的正整数。利用栈的基本操作将此十进制的正整数转化成二进制的数据。并将其结果输出


[解决办法]
可以使用系统函数:

Java code
java.lang.Integer这个API包中有进制转换的函数 public static String toBinaryString(int i)
[解决办法]
利用栈的操作
一下代码没测试过,有问题自己调试吧
public class StackBinary {
public static void main(String[] args) {
try {
Stack stack = new Stack();
Scanner scanner = new Scanner(System.in);
System.out.print("input an positive integer:");
int num = scanner.nextInt();

//use stack to convert num to binary
while (num>=2) {
stack.push(""+num%2);
num >= 1; // num /= 2;也可以
}
stack.push(num);

//print result
System.out.print("result is: ");
while (statck.size()>0) {
System.out.print(statck.pop());
}
System.out.println();

} catch (Throwable e) {
e.printStackTrace();
}
}
}
[解决办法]
ArrayList<Integer> numArray = new ArrayList<Integer>();

这是什么意思 我不懂这个语法< >

[解决办法]
回复zbl0201:
JAVA新增的特性:泛型数组列表
[解决办法]
import java.util.*;
public class DecimalistToBinary
{
public static void main(String[]args)
{
if(0==args.length)
{
System.out.println("您没有输入正整数(int类型)");
System.exit(0);//从用户的角度来考虑,这里不应该退出,应该给用户
//一个重新输入的机会.但为了简化,这里直接退出了
}
try
{
int num = Integer.parseInt(args[0]);
if(num<0)
{
System.out.println("请输入正整数");
System.exit(0);//同前
}

DToB(num);
}
catch(Throwable e)
{
e.printStackTrace();
}
}

public static void DToB(int param)
{
Stack aStack = new Stack();
while(0 != param)
{
int i = param%2;
aStack.push(i);
param = param/2;
}

while(aStack.empty() != true)
{
System.out.print((int)aStack.pop());
}

System.out.println();
}
}
编译通过,没有什么问题。
[解决办法]
使用除2取余法,每次把得到的余数放在栈里,最后一个得到的余数是二进制的高位数字,所以把栈中的数据依次弹出即是要求的二进制数字
[解决办法]
楼上正解

热点排行