Hash 如何获取散列的数值?

Hash 如何获取散列的数值?,hash,blockchain,sha,Hash,Blockchain,Sha,在区块链wiki上,可以发现散列 0000c3af42fc31103f1fdc0151fa747ff87349a4714df7cc52ea464e12dcd4e9 对应于值2^239.61238653。我的问题是,如何计算散列的这个数值?首先请注意,当您尝试转换为十进制时,块散列通常表示为十六进制的小值。如果是little endian: 要在bash/perl中转换为十进制,请执行以下操作: $ hex=0000c3af42fc31103f1fdc0151fa747ff87349a4714

在区块链wiki上,可以发现散列

0000c3af42fc31103f1fdc0151fa747ff87349a4714df7cc52ea464e12dcd4e9 

对应于值2^239.61238653。我的问题是,如何计算散列的这个数值?

首先请注意,当您尝试转换为十进制时,块散列通常表示为十六进制的小值。如果是little endian:

要在bash/perl中转换为十进制,请执行以下操作:

$ hex=0000c3af42fc31103f1fdc0151fa747ff87349a4714df7cc52ea464e12dcd4e9
$ $ perl -le 'use bignum qw/hex/; print hex("0x".$ARGV[0])' --"$hex"
532607621168989936896605052113495566299419916018780134558135832581308350315356027254565114944
或者,要获取base2日志:

perl -le 'use bignum qw/hex/; print log(hex($ARGV[0]))/log(2)' -- "$hex" 
239.6123865298365295145460775449928303015

它表示
2^239.61238653

将十六进制转换为十进制,并获得以2为基数的对数。