【问题标题】:Converting from Int to Hex doesnt work in Java从 Int 转换为 Hex 在 Java 中不起作用
【发布时间】:2013-02-10 18:22:51
【问题描述】:
  int diny6h = Integer.parseInt(Integer.valueOf(diny6).toString(), 10);
  int diny7h = Integer.parseInt(Integer.valueOf(diny7).toString(), 10);
  diny6h=diny6h-32;
  diny7h=diny7h-32;
  System.out.println(diny6h + " + " + diny7h);
}

来电:diny6=30diny7=20

打印:diny6h=16diny7h=00

我想要什么:diny6h=10diny7h=00

我在这里做错了什么?

编辑: 好吧..这些数字以十六进制发送并以十进制接收,因为块中的其他数字(不是 diny6 和 7,而是 diny1 到 diny5)需要作为十六进制。但是 diny6 和 7 需要作为小数,但我无法以我想要的方式获得它们我想要发送一个 35(十六进制)它以 53(dec)的形式出现,应该打印为 10(dec)。同样的问题:想发送一个 20(十六进制),它是一个 32(十进制),应该打印为 0

简而言之:

我发送 35,收到 53,但我需要 35 将其减​​少 20 并获得 15...我该怎么做?

编辑:

我为昨天的混乱感到抱歉。我需要将收到的值转换为 BCD 数字...没有十六进制 ^^ 我现在应该删除这个问题吗?

【问题讨论】:

  • 您真正想要实现什么?十进制的 30 不是十六进制的 10,十进制的 20 不是十六进制的 00
  • 我相信这不是确切的打印输出。
  • 您正在将整数转换为十六进制并使用int 变量来保存结果?你将如何表示 A 到 F 的“数字”?此外,这条线的意义是什么:Integer.parseInt(Integer.valueOf(diny7).toString(), 10);?假设diny7 是一个字符串,然后将字符串转换为整数再将字符串转换为整数 - 嗯?
  • sry,忘了提..传入的值减少了 20
  • 你认为“十六进制”这个词是什么意思?因为据我所知,您的问题与十六进制无关。

标签: java parsing int hex valueconverter


【解决方案1】:

没有错。

对于 diny6:

30(hex) - 32(dec) = 30(hex) - 20(hex) = 10(hex) = 16(dec)

diny7 也是如此。

默认情况下,整数以十进制打印,这就是你得到 16 的原因。 如果您想以十六进制格式打印数字,请执行以下操作:

System.out.println(String.format("%x",diny6));

更新:

恐怕你还没有完全理解数学基础。 hex 和 dec 只是表示形式,int 变量不是十进制或十六进制 - 它只是一个数字。
1.读取数字的字符串表示。
2. 做任何你需要的计算(在这个阶段不要让你自己关心基础)。
3. 使用格式字符串将结果打印为十进制或十六进制。
4. 阅读主题。

【讨论】:

  • 好的,然后它们被打印为十六进制,但我需要更新文本字段的数字并做一些数学运算。
【解决方案2】:

是我自己的错,误解了我想做的事情的含义,忽略了一些硬件相关的要求。问的问题完全错了。

【讨论】:

    猜你喜欢
    • 2016-09-21
    • 2015-12-09
    • 2011-06-02
    • 2013-12-15
    • 1970-01-01
    • 1970-01-01
    • 2012-08-01
    • 2016-05-21
    • 1970-01-01
    相关资源
    最近更新 更多