0
我有兩個變量:a float
名爲diff
與值等894077435904.000000
(並不總是僅與小數部分零)和char[32]
這是雙重sha256計算的結果。我需要對它們進行比較(if(hash < diff) { //do someting }
),但爲此我需要將其中一個轉換爲另一個的類型。轉換到char [32](或反之亦然)用C
有沒有辦法做到這一點?例如,將float
轉換爲char*
(並使用strcmp
進行比較)或char*
至至float
(並且使用上述方法 - 如果甚至可能,考慮char*
是256位或32字節長)?
我試圖轉換float
到char*
這樣的:
char hex_str[2*sizeof(diff)+1];
snprintf(hex_str, sizeof(hex_str), "%0*lx", (int)(2*sizeof diff), (long unsigned int)diff);
printf("%s\n", hex_str);
當我有diff=894077435904.000000
我得到hex_str=d02b2b00
。我如何驗證這個值是否正確?使用this converter我獲得了不同的結果。
你需要做數學題的難度轉換到目標,然後你需要爲目標比較散列結果(可能用'memcmp')。有關如何將難度轉換爲目標的更多信息,請參見[這裏](https://en.bitcoin.it/wiki/Difficulty)。 –
我已經做了這個數學(我從json-rpc接口讀取'bits',轉換爲'unsigned int'並傳遞給你發佈的鏈接中列出的函數)。現在我只需要比較難度和散列,我猜。 –
好的。爲此,使用'memcmp'。如果散列值小於目標值,則獲勝。 –