【问题标题】:Why is Binary represented as a String?为什么二进制表示为字符串?
【发布时间】:2020-08-02 20:48:34
【问题描述】:

所以我对 Java 还是很陌生,并且有学习的动力。这个问题可能看起来很简单,但我真的不明白,并且已经在 Google 上搜索了答案(没有运气)。

我在 Java 中将十进制转换为二进制。但是,我认为数字的表示应该以intdouble 等数据类型给出。

代码如下:

int decimal = 99;
String binary = Integer.toBinaryString(decimal);
System.out.println(binary);

为什么是String binary,不应该是数值数据类型吗?

【问题讨论】:

  • 我没听懂你的问题,你是说为什么Integer.toBinaryString(decimal) 返回的是字符串而不是整数?
  • 是的,没错。为什么?
  • 因为如果您将二进制表示形式放入 int 类型,它将是其他不同的数字,它会为您提供字符串,以便您可以将其转换为任何表示形式

标签: java binary decimal


【解决方案1】:

在内部,所有值都存储为二进制值。因为它更容易阅读,所以将整数转换为数字进行显示。因此,将值显示为二进制纯粹是一个表示问题。

所以 99 在内部存储为 01100011。您可以将其显示为十六进制 (0x63)、十进制 (99) 或二进制。但是因为每种情况下的数值都是一样的,唯一的区别就是用来显示它的符号,而这个符号表示就是一个字符串。

【讨论】:

    【解决方案2】:

    以下ints 都相等:

    int i = 99;
    int j = 0o143;
    int k = 0x63;
    int l = 0b1100011;
    

    如果您想打印它们,您必须使用Integer 的实用方法将它们转换为String,或者使用number formatting

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2020-12-31
      • 1970-01-01
      • 1970-01-01
      • 2011-08-03
      • 1970-01-01
      • 1970-01-01
      • 2012-08-27
      • 2014-07-26
      相关资源
      最近更新 更多