【发布时间】:2012-07-29 11:45:57
【问题描述】:
我有这个 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。
【问题讨论】: