文字列をビッグエンディアンに変換しようとしていますが、ビットシフトなどの経験が不足しているため、これまでのところ次のことに行き詰まっています。
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へのリンク)