<分区>
我需要编写一个程序,将二进制数作为十进制数相加。但它并没有像我预期的那样工作。
int i = 0101, j=0001;
System.out.println(i+j);
我希望答案是 6(即 0101 和 0001 之和的小数)或者 0102(因为我将它们添加为简单的十进制数)。但是出乎意料的是,我得到了66。任何人都可以解释一下吗?或者可以帮助我编写将两个二进制数作为十进制数相加的代码。
<分区>
我需要编写一个程序,将二进制数作为十进制数相加。但它并没有像我预期的那样工作。
int i = 0101, j=0001;
System.out.println(i+j);
我希望答案是 6(即 0101 和 0001 之和的小数)或者 0102(因为我将它们添加为简单的十进制数)。但是出乎意料的是,我得到了66。任何人都可以解释一下吗?或者可以帮助我编写将两个二进制数作为十进制数相加的代码。
最佳答案
您使用的是八进制文字,即 0101
= 65
= 1 * 8² + 1
。要使用二进制文字,请使用以下表示法:
int i = 0b101, j = 0b1;
如果要将 int 打印为二进制,请使用 Integer.toBinaryString
以二进制形式获取 int
的字符串表示形式。
关于java - 添加二进制数,如 Java 中的十进制数。例如 0101 + 0110 = 0211,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30694370/