2016-02-25 75 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