2016-02-25 39 views
-1

我是Java新手,我写了这段代码,但看起来我的教授想要没有堆栈,数组或字符串的转换器。你怎么做到这一点?我能做到这一点的一种方式是什么?它适用于汇编语言x86。他希望我学习如何在没有数组堆栈或字符串的情况下做到这一点。谢谢。Java中的二进制转换器

import java.util.Scanner; 

public class Converter { 
    public static void main (String[] args){ 
    int number; 

    Scanner kb = new Scanner(System.in); 
    Stack myStack = new Stack(20); 
    System.out.println("Enter a number to convert: "); 
    number = kb.nextInt(); 
    do{ 
     int temp; 
     int remainder; 
     myStack.push(number%2); 
     number = number/2; 
    }while(number>0); 
    while(myStack.size() > 0) 
    System.out.print(myStack.pop()); 
    } 
} 
+6

告诉你的教授认为,Java有这些是有原因的。 –

+0

使用按位运算(&和<<) –

回答

1

这是一个JAVA书写传统C风格的代码,它不使用任何字符串数组或堆栈。

我只对原始代码做了一些更改。

这里是代码片段:

public static void main (String[] args) 
{ 
    Scanner kb = new Scanner(System.in); 
    System.out.println("Enter a number to convert: "); 
    int number = kb.nextInt(); 
    int arr[] = new int[number/2]; 
    int k = 0; 
    do { 
     arr[k++] = number%2; 
     number = number/2; 
    } while(number > 0); 

    /* Print */ 
    for(int i = arr.length - 1; i >= 0; i--) { 
     System.out.print(arr[i]); 
    } 
} 

输入:

8 

输出:

1000 
+0

'[]'这是一个数组。 – njzk2

+0

我知道。但它说不使用*字符串数组* – user2004685