2016-11-10 6 views
0

これまではこの方法がありましたが、正しいかどうかはわかりませんが、結果を文字列として返しますか?文字を8ビットの2進数に変換して結果を文字列として返す方法

//method converts a 8-bit binary number into a character and returns the character 


public static char convertToString(String binary) 
    { 
    Scanner input = new Scanner(System.in); 
    System.out.print("Enter a series of binary numbers"); 
    binary = input.next(); 


    int len = binary.length(); 
    int sum = 0; 
    for(int i = 0; i < len; i++) 
    { 
     System.out.print(binary.charAt(len-i-1) + " "); 
     char temp = binary.charAt(len-i-1); 
     int a = Character.getNumericValue(temp); 
     int value = (int)(a * Math.pow(2, i)); 
     System.out.println(value); 
     sum +=value; 
    } 
    char word = (char)sum; 
    return word; 
    } 


    public static String convertToBinary(char character) 
    { 

    return ""; 
    } 
+0

Check Integer.toBinaryString(x) – Adam

+0

この練習から間違いなく学ぶことができますが、 'char'は16ビットの値であり、いくつかの文字には、分離不可能な' char'値が2つ必要な場合がありますコンプリート。 –

答えて

0

ここになります。高度に最適化されています。 Javaでそこにこれを行う方法がありますが、あなたは(多分学ぶ?)それをコーディングしたかった理由は、私はよく分からないので、ということ

public static int binaryToValue(String binary) 
{ 
    int sum = 0; 
    int bit = 0; 
    for (int i = binary.length(); --i >= 0;) 
    { 
     char temp = binary.charAt(i); 
     int v = temp - '0'; 
     sum += v << bit; 
     bit++; 
    } 
    return sum; // you may change the return type to char and cast this as return (char)sum 
} 


    public static String valueToBinary(char character) 
    { 
     char []ret = {'0','0','0','0','0','0','0','0'}; 
     int v = (int)character & 0xFFFF; 
     //System.out.println(v); 
     for (int idx = 0; v > 0; v >>= 1, idx++) 
      if ((v & 1) == 1) 
      ret[7-idx] = '1'; 
     return new String(ret); 
    } 


    public void initUI() 
    { 
     System.out.println(binaryToValue("1001")); 
     System.out.println(valueToBinary('A')); // 65 
     System.out.println(binaryToValue(valueToBinary('A'))); 

     MainWindow.exit(0); 
    } 

は注意、私はこれらのメソッドを作成しました。

関連する問題