Re: 難易度

人物: mizerydearia

ArtForz ありがとう! ^_^

ArtForzの投稿(2010年8月4日 14:21 UTC)
import struct

def SetCompact(nCompact):
	"""convert bc compact uint to number"""
	nSize = (nCompact >> 24) & 0xFF
	tbuf = "\x00\x00\x00" + chr(nSize)
	if nSize >= 1:
		tbuf += chr((nCompact >> 16) & 0xFF)
	if nSize >= 2:
		tbuf += chr((nCompact >> 8) & 0xFF)
	if nSize >= 3:
		tbuf += chr((nCompact >> 0) & 0xFF)
		tbuf += "\x00" * (nSize - 3)
	return mpi2num(tbuf)
def uint256_from_compact(c):
	nbytes = (c >> 24) & 0xFF
	v = (c & 0xFFFFFFL) << (8 * (nbytes - 3))
	return v

これら両方が 0x1d00ffff を使ったとき同じ出力を生成することを改めて確認した