2017-02-07 13 views
0

ここにメソッドが必要です。 Oneは10進数を8ビットのバイナリに変換します。私は2つの2進数を一緒に加える別の方法を追加する必要があります。たとえば、01000000(64)+ 00000010(2)= 01000010(66)です。その後、2番目の方法では34 + 56 = 90となり、2進法の等価値は01011010になります。そのため、それを実行するメソッドが必要です。したがって、ユーザが2桁の10進数を求められた場合、2桁の数字を加算して加算します。これは、バイナリに小数を変換し、バイナリ(8ビット)バイナリ番号を追加するには

に答えを入れうち、私はそれが2つの2進数

public String toBinary(int number) 
{ 
    String binary = " "; 
    boolean isNeg = number < 0; 
    if(isNeg) 
    { 
     number += 1; 
    } 
    while (number > 0 || number < 0) { 
     int rem = number%2; 
     if(rem == -1) 
     { 
      rem = rem * -1; 
     } 
     binary = rem + binary; 
     number /= 2; 

    } 
    while(binary.length() <= 8) 
    { 
     binary = "0" + binary; 
    } 

    if(isNeg) 
    { 
     StringBuffer buff = new StringBuffer(""); 
     for(int i =0; i < 8; i++) 
     { 
      char store = binary.charAt(i); 
      if(store == '0') 
      { 
       buff.append("1"); 

      }else 
      { 
       buff.append("0"); 
      } 

     } 

     binary = buff.toString(); 
    }  

    return binary; 
} 

を追加するために取得する私はそれを修正する必要が2進数から10進数への変換方法をいくつかに必要負のバイナリ(調印)のための作業は、2つの2進数

public int toDecimal(int number) 
{ 
    int decimal = 0; 
    int p = 0; 
    while(true) 
    { 
     if(number ==0) 
     { 
      break; 
     }else if(number > 0) { 
      int temp = number%10; 
      decimal +=temp*Math.pow(2,p); 
      number = number/10; 
      p++; 
     } 



    } 
    return decimal; 

}}

+0

バイナリ0 + 0 = 0; 0 + 1 = 1; 1 + 1 = 0キャリ1; – Sedrick

+0

2つのバイナリ文字列を取得したらInteger.parse(yourString.Charat(index))を使用します。同一インデックスを追加する。必要なときに運ぶのを忘れないでください。それぞれの追加から結果文字列を作成します。 – Sedrick

答えて

0

、まずあなたのことを教えて申し訳ありませんが、...両方の方法がすでに存在しているが、大きなを追加することができますそれは非常に危険だwhile(true)は絶対に使用しないでください、とのあなたの変数外のインスタンスを作成:toDecimalあなたのために

public String addBinary(int a, int b){ 
     return toBinary(toDecimal(a)+toDecimal(b)); 
} 

:あなたは「追加」方法について彼らに

//The method to convert from int to Binary already exists : Integer.toBinaryString(int i) 
System.out.println(toBinary(16)+" <=> "+Integer.toBinaryString(16)); 
//The method to convert from Binary to int (with String) too : Integer.parseInt(String s,2) 
System.out.println(toDecimal(00010000)+" <=> "+Integer.parseInt(String.valueOf(10000),2)); 

をコーディングしようとした場合には、ちょうどあなたの2つの他の方法を使用します毎回新しいものを作成しているので、ループ(ここではelse if)を使用してください:

+1

私はこれが宿題であると推測しているので、OPはInteger.toBinaryStringなどを使用することができません。 –

+0

'addBinary'メソッドも同じです。代入の目的を無効にするので、Javaの加算演算子を使用して複数桁の数値を追加することはできません。 –

+0

いや、私はこれらの – MoneyMonster

関連する問題