【问题标题】:Parsing HEX result in different values解析 HEX 会产生不同的值
【发布时间】:2022-01-23 18:09:42
【问题描述】:

我正在尝试迁移(从 javascript 到 java)一个函数来解码十六进制值。 问题是当我尝试将“5CDF”转换为 Int 时。

JAVASCRIPT

ParseInt("5CDF") // Return 5

JAVA

Integer.parseInt("5CDF") // Exception
Integer.parseInt("5CDF",16) // Return 23775

如何在Java中将“5CDF”转换为5?

【问题讨论】:

  • @Kanaiya 我认为更改发布的代码不是一个好主意...为什么您知道它是"5CDF7" 而不是原来的"5CDF"贴出来,又重​​复了两次?
  • 如果你想忽略 9 以上的十六进制数字,那么你不是在解码十六进制值,是吗?你想做什么?

标签: java hex


【解决方案1】:

据我所知,十进制的5CDF == 23775。

那么问题来了,你想要解码的十六进制值还是前面的 5?

【讨论】:

  • 嗨@alexxarisis,这里是Javascript中的其他示例。正如你所说,我需要我认为的第一个数字。示例:65CF = 65 或 7D72 = 7。所以我相信 Javascript 会一直解析到一个字母来。
  • @sebacipo 如果第一个数字是您要查找的数字,您可以简单地执行 String nums = s.split("(?=\\D)")[0];,然后将其解析为 int。还有很多其他方法可以做到这一点。但我会注意 javascript 函数,因为它可能从一开始就是错误的,而您实际上需要真正的答案。
猜你喜欢
  • 1970-01-01
  • 2015-05-11
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多