如何将这个二进制乘法码的答案带进二进制?
How to bring the answer of this binary multiplication code in binary?
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("100101", 2);
这会将整数解析为二进制数。
只需将此添加为最后一条语句:
System.out.println(Integer.toBinaryString(product));
查看产品的二进制版本。
Java 使用十进制底数打印出数字,因为人类是主人。
在内存内部,或 CPU 注册表中,一切都是二进制的。
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("100101", 2);
这会将整数解析为二进制数。
只需将此添加为最后一条语句:
System.out.println(Integer.toBinaryString(product));
查看产品的二进制版本。
Java 使用十进制底数打印出数字,因为人类是主人。 在内存内部,或 CPU 注册表中,一切都是二进制的。