有 Java 编程相关的问题?

你可以在下面搜索框中键入要查询的问题!

在Java或C中附加两个十六进制长值

我正在用Java实现SHA-2算法。然而,我遇到了一个问题。我需要在一个十六进制值中附加两个十六进制值,但我无法这样做。我尝试将这两个字符作为字符串追加,并使用Long.parseLong(appendedString),但这会导致数字格式异常。我可以用Java做这个吗?如果没有的话,在C中是否有这样做的方法,我将在C中实现它?谢谢你的阅读

以下是代码:

    String temp = h[0] + "" + h[1]; //Where h[0] and h[1] are two hex values stored as Long
    //I also tried String temp = String.valueOf(h[0]) + String.valueOf(h[1]); but no dice
    Long appended = Long.parseLong(temp); //Number format exception here

当我说append时,我的意思是:0x6a09e667+0xbb67ae85=0x6a09e667bb67ae85


共 (1) 个答案

  1. # 1 楼答案

    0x6a09e667 + 0xbb67ae85给出了无效的0x6a09e6670xbb67ae85。请尝试以下代码:

    String temp = h[0] + h[1].substring( 2 ); // Strip "0x" from second string