私はこのPythonコードを持っています(hexdigestはSHA1です):
d = long(hexdigest, 16)
if d >> 159:
return "-%x" % ((-d) & (2**160-1))
return "%x" % d
このコードを D に変換する必要があります。いくつかのことを試しました。
- to!long(hexdigest, 16) – オーバーフローで失敗しました (ulong には大きすぎます)
std.BigInt
バイナリをサポートしていません&
Dでそれをどのように行いますか?C
C ソリューションは D でも機能するため、この質問に関連するタグを付けました。