質問

Iは、符号なしのような他の種類のPythonでUnicode文字列を変換する必要があり、INT 8ビット符号なし署名し、int型の16ビット符号付き、符号なしとint型32ビット符号付き、符号なしとint型64ビット、ダブル、フロート、文字列に署名し、符号なしと、8ビットの符号付き、符号なし16ビットの符号付き、符号なし32ビットの符号付き、符号なしの64ビットを締結します。

私はuの人からの助けを必要とします。

役に立ちましたか?

解決

int() の整数に文字列を変換するために使用します。あなただけのものの1種類を取得しますので、Pythonは異なる固定幅の整数を持っていません。

次に、固定幅に整数をパックする 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バイナリの数値を含むバイト列を生成します。

編集: あなただけの整数に(小数点以下の桁数の)文字列を変換したいようなコメントから、それが聞こえます。ただ、しかし、あなたが指定した種類のすべての複雑なオーバーフロー/アンダーフローのセマンティクスを取得することはできません、そのためint()を使用しています。あなたは、少なくともではないコードの全体の多くを記述することなく、Pythonでそれを再現することはできません。

私はあなたが任意のより多くの助けをしたい場合は、あなたが達成したいかについて、より正確でなければならないと思います。

ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top