基本上,我的问题是双重的,特别是指比特币 RPC。我正在用 Java 为莱特币(BTC 的衍生产品)编写一个矿工,需要一个如下所示的字符串:
000000000000000000000000000000000000000000000000000000ffff0f0000
将其转换为外观
00000fffff000000000000000000000000000000000000000000000000000000
(我相信这是从小端切换到大端)
然后我需要将该字符串转换为字节数组——
我查看了 org.apache 中的 Hex 类、String.toByte() 和一段代码,如下所示:
public static byte[] toByta(char[] data) {
if (data == null) return null;
// ----------
byte[] byts = new byte[data.length * 2];
for (int i = 0; i < data.length; i++)
System.arraycopy(toByta(data[i]), 0, byts, i * 2, 2);
return byts;
}
所以本质上:在Java中改变字节顺序的最好方法是什么?获取数字的字符串表示并将其转换为要散列的字节数组的最佳方法是什么?
编辑:更改字节序后我得到了错误的结果。