我正在尝试将字符串转换为大端,但由于我缺乏位移等经验,到目前为止我一直坚持以下几点:
def my_func(self, b):
a = [(len(b)+3) >> 2]
for i, val in enumerate(b):
a[i>>2] |= ord(b[i]) << (24-(i & 3)*8)
return a
上面返回错误
a[i>>2] |= ord(b[i]) << (24-(i & 3)*8)
IndexError: list index out of range
,并且也永远不会比#4更远地通过循环索引。
错误消息指向 a[] 列表。
谁能看到我在这里做错了什么?我从 JavaScript 移植这个,所以这可能是问题(链接到那个http://pastebin.com/GKE3AeCm)