我正在用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

最佳答案

我想你的代码应该是这样的:

long hex1 = 0x6a09e667;
long hex2 = 0xbb67ae85;

你需要0x6a09e667bb67ae85的输出。
您可以通过一些位移位来完成此操作,例如:
long result = hex2 | (hex1 << 32);

10-01 09:12
查看更多