4

これはばかげた質問の 1 つであり、私はそれを定式化する方法がよくわからないので、例を挙げます。私は得た

v = chr(0xae) + chr(0xae)

ここで、#AEAE は 10 進数で 44718 の値です。

私の質問は、の整数値を取得する方法vですか? 私は知ってord()いますが、文字列には使用できず、文字列には使用できません。

ありがとうございました。

4

5 に答える 5

2

これらの式のいずれintかを使用して、任意の長さのバイト文字列を または に変換できます。long

i = reduce(lambda x, y: (x<<8)+ord(y), v, 0)
i = reduce(lambda x, y: (x<<8)+ord(y), reversed(v), 0)

1 つをリトルエンディアン データに使用し、もう 1 つをビッグ エンディアン データに使用します。またはその逆。

于 2013-05-08T19:17:41.223 に答える
1

さて、簡単な方法は次のとおりです。

def convert(v):
    x = 0
    for c in v:
        x *= 256
        x += ord(c)
    return x

一番左の文字に最大値を持たせたい場合。

v反対のエンディアンネスを取得するために、事前に逆にすることができます。

于 2013-05-08T19:24:58.843 に答える