【问题标题】:Add binary numbers like decimal numbers in Java. eg 0101 + 0110 = 0211 [duplicate]在 Java 中添加二进制数,如十进制数。例如 0101 + 0110 = 0211 [重复]
【发布时间】:2015-06-07 13:59:01
【问题描述】:

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

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

我预计答案是 6(即 0101 和 0001 之和的小数)或 0102(因为我将它们添加为简单的十进制数)。但出乎意料的是,我得到了 66。有人可以解释一下吗?或者可以帮助我将两个二进制数添加为十进制数。

【问题讨论】:

  • 0211 或 0102 是怎样的二进制数?
  • 不,他们不是。我只想添加二进制数,就好像它们是简单的十进制数一样。

标签: java binary decimal


【解决方案1】:

您使用的是八进制文字,即0101 = 65 = 1 * 8² + 1。要使用二进制文字,请使用以下符号:

int i = 0b101, j = 0b1;

如果要将 int 打印为二进制,请使用 Integer.toBinaryString 以二进制形式获取 int 的字符串表示形式。

【讨论】:

  • 但是如何将其打印为二进制?
  • @OSryx 您可以使用Integer.toBinaryString(int) 以二进制形式显示它。
【解决方案2】:
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

【讨论】:

  • ij 不是字符串??
  • 不,根据 OP 的代码,它们是 ints。
猜你喜欢
  • 1970-01-01
  • 2012-10-26
  • 1970-01-01
  • 2015-02-01
  • 2018-02-06
  • 2013-12-29
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多