私は宿題の解決のためにほとんど解決策を得ていると思います。2つのバイナリ数値を再帰的に追加します(ビット演算なし)。 Java宿題
これは201 CSクラス用です。今は論理を正しく取りたいだけです。現在のところ、意図したとおりに動作しませんが、それは近いです。
.toBinary、ビット単位、またはその他のものは使用しません。私たちもstringBuilderを教えていないので、使用しないでください。
System.out.println()があります。コンソールを下から上に読んだ場合に正しい答えを提供する方法の中で。正しい答えは、私が理解するトラブルを抱えている11010101110.
とき
public static void main(String[] args) {
System.out.println(addBin(1100111011,1101110011));
}
public static String addBin(int num1,int num2){
String result = "";
if(num1 > 0 || num2 > 0){
int part1 = num1%10, part2 = num2%10;
int rem1 = num1/10, rem2 = num2/10;
result += Integer.toString((part1 + part2)%2);
//System.out.println(result);
int carry = (part1 + part2) /2;
addBin(rem1 + carry, rem2);
return result;
}
return result;
}
ので、この例では、出力
0
1
1
1
0
1
0
1
0
1
1
0
で1100111011と1101110011を追加する方法を適切に「ポップ」に " 「結果」部分を適切に処理します。おそらくこの問題の文脈の中で、このプロセスを理解するのを手伝ってください。
ありがとうございます!
あなたは 'System.out.println(addBin(0b1100111011,0b1101110011));'? –
私はしません。これらは、ユーザーの入力から表面的に受け取られる「バイナリ」番号です。同様に、私はスキャナーでその数字をどこかから得ることができるはずです。 –
'addBin'は値を返します。その戻り値を使用する必要があります。 'result'変数を作成しないで、' addBin(rem1 + carry、rem2) 'と' Integer.toString((part1 + part2)%2) 'の2つの値を考えてみてください。 – Ryan