4

Python の Unicode 文字列を unsigned および signed int 8 ビット、unsigned および signed int 16 ビット、unsigned および signed int 32 ビット、unsigned および signed int 64 ビット、double、float、string、unsigned および signed などの他の型に変換する必要があります。 8 ビット、符号なしおよび符号付き 16 ビット、符号なしおよび符号付き 32 ビット、符号なしおよび符号付き 64 ビット。

私はあなたからの助けが必要です。

4

1 に答える 1

11

int()文字列を整数に変換するために使用します。Python にはさまざまな固定幅整数がないため、1 つのタイプのものだけを取得できます。

次にstruct、整数を固定幅にパックするために使用します。

res = struct.pack("=B",i) ## uint8_t
res = struct.pack("=b",i) ## int8_t

res = struct.pack("=H",i) ## uint16_t
res = struct.pack("=h",i) ## int16_t

res = struct.pack("=I",i) ## uint32_t
res = struct.pack("=i",i) ## int32_t

res = struct.pack("=Q",i) ## uint64_t
res = struct.pack("=q",i) ## int64_t

res = struct.pack("=f",i) ## float
res = struct.pack("=d",i) ## double

struct数値をバイナリで含むバイト文字列を生成します。

編集: コメントから、(10 進数の) 文字列を整数に変換したいだけのように聞こえます。そのために使用するだけint()ですが、指定された型の複雑なオーバーフロー/アンダーフロー セマンティクスをすべて取得することはできません。少なくとも大量のコードを書かない限り、Python でそれを再現することはできません。

さらに助けが必要な場合は、達成したいことについてより正確にする必要があると思います.

于 2008-12-17T11:58:56.973 に答える