只是一个简单的问题,你的代码确实将位加到高于2的数字,这是二进制的限制,例如假设n1 = 1111和n2是相同的,那么你的代码将显示1234321的结果,尽管它的不是有效的二进制数,我们应该如何使结果为二进制?感谢
答案 0 :(得分:0)
算法与十进制数相同,就像你在学校学到的一样。你带着溢出物。但实际上,这与乘法无关。那只是补充。例如,1111 x 1111 = 1111 + 11110 + 111100 + 1111000。
答案 1 :(得分:0)
在Java中,您可以执行以下操作以获取二进制输出
int i1 = 1111;
int i2 = 1111;
int result = i1 * 12;
System.out.println("result in binary " + Integer.toBinaryString(result));
答案 2 :(得分:0)
你正在理解二进制数学。 1111不是二进制,无论如何不是1111可以乘以1111并得到1234321.
二进制1111在十进制中为15。尝试使用windoes Calc在Dec.和Bin之间进行更改。
[1111 (Dec) = 10001010111 (Bin)
1111 (Bin) = 15 (Dec)
1234321 (Dec) = 100101101010110010001 (Bin)
1234321 (bin) is invlid][1]
无论如何,你需要通过二进制数学来理解这是如何工作的。
尝试this link,看看multiplication如何运作