我需要编写一个程序,它将二进制数添加为十进制数。但它并没有像我预期的那样工作。
int i = 0101, j=0001;
System.out.println(i+j);
我期望答案是6(即0101和0001之和的十进制)或者0102(因为我将它们作为简单的十进制数加入)。但出乎意料的是,我得到66.有人可以解释这个吗?或者可以帮我把代码添加为二进制数作为十进制数。
答案 0 :(得分:4)
你正在使用八进制文字,即p
= 0101
= 65
。要使用二进制文字,请使用以下表示法:
1 * 8² + 1
如果要将int打印为二进制文件,请使用Integer.toBinaryString
以二进制形式获取int i = 0b101, j = 0b1;
的字符串表示形式。
答案 1 :(得分:0)
int num1 = Integer.parseInt(Integer.toString(i),2);
int num2 = Integer.parseInt(Integer.toString(j),2);
System.out.println(num1+num2);
首先我们需要将数字从二进制转换为十进制。为此,您需要使用Integer
包装类的解析命令来解析它。然后你可以添加。
格式Integer.parseInt(String,radix)
可用于将任意数字字符串转换为基数radix
。