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

标签 java binary decimal

<分区>

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

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/

相关文章:

java - Set.value 用新数据替换现有数据

java - 观察创建的表和条目

Linux 二进制权限

windows - 使用二进制补丁时更新已安装的程序版本?

java - 通过 DWR 发送和接收 JSON 对象

java - 在 Spring Boot 中将 @Bean 放在哪里?

java - (Java) 将二进制数转换为字符串时指定位数(长度)?

c - 如何在 C 中将浮点值限制为小数点后两位?

将存储为字符的十六进制字符串转换为C中的十进制

ruby-on-rails - Ruby/Rails - 如何验证小数位数?