如何从给定的长HEX哈希中生成(在JavaScript或Node.JS中)浮点范围为0.00000000 - 100.00000000?例如SHA-256?
我对使用@Test annotation and method
库的解决方案持开放态度,因为我使用它来生成给定的哈希值:)
答案 0 :(得分:2)
如果您不关心精度损失,并且您的十六进制字符串具有固定长度(与SHA-256一样),您可以简单地从一个值空间映射到另一个值空间:
from matplotlib import dates
import datetime
## arbitrary start date... we're dealing with milliseconds here.. so only showing time on the graph.
base_datetime = datetime.datetime(2018,1,1)
csvDateTime = map(lambda x: base_datetime + datetime.timedelta(seconds=x), csvTime)
csvMatTime = map(lambda x: dates.date2num(x), csvDateTime)
请注意,精度损失足以使SHA-256的大部分冗余:
function hexStrToFraction(hexStr) {
// Expresses a hexadecimal string of N characters as a fraction
// of one above its maximum possible value (16^N).
// Returns a number between 0 and 1.
return parseInt(hexStr, 16) / Math.pow(16, hexStr.length);
}
function sha256ToPercent(sha256) {
return 100 * hexStrToFraction(sha256);
}