当前位置: 首页 > 面试题库 >

比较Java中的两个十六进制字符串?

蒯宏达
2023-03-14
问题内容

我正在使用Java中的Chord协议实现简单的DHT。详细信息并不重要,但是我要坚持的事情是我需要对字符串进行哈希处理,然后查看一个哈希字符串是否“小于”另一个。

我有一些代码可以使用SHA1计算哈希,该哈希返回40位长的十六进制字符串(在Java中为String类型),例如:

69342c5c39e5ae5f0077aecc32c0f81811fb8193

但是我需要能够比较其中的两个,以便例如:

0000000000000000000000000000000000000000

小于:

FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF

这是值的完整范围,因为40位数的字符串实际上代表0123456789ABCDEF范围内的40个十六进制数字

有谁知道如何做到这一点?

提前致谢。


问题答案:

0..9A..F在ASCII字符集中的十六进制数字顺序,因此

string1.compareTo(string2)

应该可以。除非我缺少任何东西。



 类似资料:
  • 我有两个字符串的输入,每个字符串以十进制格式表示一个非负有理数。 给定这两个字符串,我想检查由x表示的数值是否大于由y表示的数值。 这两个值可以非常大,也可以扩展到非常高的精度(即小数点后的许多数字)。 因此,我不能依赖

  • 最近邻分类方法的动机是这样的,个体可能像最近的邻居。 从另一个角度来看,我们可以说一个类别的个体不像另一个类别中的个体。 机器学习为我们提供了一种有力的方法来发现这种相似性的缺乏,并将其用于分类。 它揭示了一种模式,通过一次检查一两个属性,我们不一定能发现它。 但是,我们可以从属性中学到很多东西。 为了了解它,我们将比较两个类中的属性分布。 让我们来看看 Brittany Wenger 的乳腺癌数

  • 我有十六进制字符串,例如“0x103E”,我想将其转换为整数。意思是to我尝试了但它给出了数字格式异常。我如何实现这一点?

  • 问题内容: 我在ex中有整数。16,我正在尝试将此数字转换为十六进制数字。我试图通过使用十六进制函数来实现此目的,但是每当您向十六进制函数提供整数时,它都会返回十六进制数字的字符串表示形式, 有人可以告诉我如何将字符串格式的十六进制数字转换为简单的十六进制数字。 谢谢!! 问题答案:

  • 问题内容: 我需要将二进制字符串转换为十六进制字符串,但是我有问题。我通过这种方法将二进制字符串转换为十六进制字符串: 没关系!但是我丢失了字符串左侧的零。例如: 该方法返回此:123456789ABCDEF,但我想返回此: 00000123456789ABCDEF 问题答案: 而不是我将使用解析值,然后以所需的宽度(在您的示例中为21)输出值:

  • 问题内容: 我也想将我的二进制(在字符串中)转换为十六进制字符串,这只是一个程序片段,因为该程序只是另一个更大程序的一部分: 问题是我不知道填充是否有效,但是我确定该程序返回了二进制字符串的错误十六进制转换,我正在尝试这样做: http://www.wikihow.com/Convert-Binary-to- Hexadecimal PS:我需要实现它(不使用任何内置函数) 问题答案: 如果您不必