在Java中添加二进制数,如十进制数。例如0101 + 0110 = 0211

时间:2015-06-07 13:59:02

标签: java binary decimal

我需要编写一个程序,它将二进制数添加为十进制数。但它并没有像我预期的那样工作。

int i = 0101, j=0001;
System.out.println(i+j);

我期望答案是6(即0101和0001之和的十进制)或者0102(因为我将它们作为简单的十进制数加入)。但出乎意料的是,我得到66.有人可以解释这个吗?或者可以帮我把代码添加为二进制数作为十进制数。

2 个答案:

答案 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