文字列を 64 ビット整数に変換するのに役立つ Python モジュールはありますか? (この文字列の最大長は 8 文字なので、long に収まるはずです)。
独自のメソッドを作成する必要は避けたいと思います。
例:
Input String Hex result (Base-10 Integer)
'Y' 59 89
'YZ' 59 5a 22874
...
文字列を 64 ビット整数に変換するのに役立つ Python モジュールはありますか? (この文字列の最大長は 8 文字なので、long に収まるはずです)。
独自のメソッドを作成する必要は避けたいと思います。
例:
Input String Hex result (Base-10 Integer)
'Y' 59 89
'YZ' 59 5a 22874
...
これは の仕事ですstruct
:
>>> s = 'YZ'
>>> struct.unpack('>Q', '\x00' * (8 - len(s)) + s)
(22874,)
または少しトリッキー:
>>> int(s.encode('hex'), 16)
22874
これを行う組み込みの方法はないと思いますが、調理するのは簡単です:
>>> int("".join([hex(ord(x))[2:] for x in "YZ"]), 16)
22874
これは、もちろん最適化することができるベース16を介して行われます。それは「練習問題」としておきます。
別の方法:
sum(ord(c) << i*8 for i, c in enumerate(mystr))
>>> reduce(lambda a,b: a*256+b, map(ord,'YZ'), 0)
22874