int product = 0;
String num1 = "11100001";
String num2 = "10110001";
int multiplicand = Integer.parseInt(num1);
int multiplier = Integer.parseInt(num2);
for(int i=7; i>=0; i--) {
if((multiplier & 01) != 0) {
product=product+multiplicand;
}
multiplicand <<=1;
multiplier >>=1;
}
System.out.println((product));
這是二進制乘法的代碼。它已被問很多次,但我仍然對這個問題下面的困惑:如何將這個二進制乘法代碼的答案帶入二進制?
在換檔操作之後,二進制結果不留二元了。最後,產品變量不是二進制的。我如何不讓變化影響最終結果,以便產品是二元的? (在這個具體的例子,答案是2115700113這顯然不是一個二進制數。
是什麼01(乘數& 01)是什麼意思?提前
謝謝回答。
請格式化您的代碼(縮進您的循環和條件的身體) - 目前它真的很難閱讀。 –
問題始於'Integer.parseInt(num1)'。這給出了11100001的值,這*不是你想要解析的整數......基本上你需要明白一個'int'只是一個'int' ......它不是「在」任何特定的基礎。這隻在轉換爲文本時纔有意義。 –
你建議我應該做什麼而不是解析? @JonSkeet – user5951764