ソケットからバイト配列/リストを読み込んでいます。 Pythonが最初のバイトを「符号なし8ビット整数」として扱うようにしたい。その整数値を符号なし8ビット整数としてどのように得ることが可能ですか?Pythonバイトを「符号なし8ビット整数」に変換する
答えて
structモジュールを使用してください。
import struct
value = struct.unpack('B', data[0])[0]
unpackは、アイテムを1つしか展開していない場合でも、必ずタプルを返します。
また、this SO questionをご覧ください。あなたが一度にあなたの受信データのすべての要素を解凍したい場合
value = ord(data[0])
:
バイト/ bytearrayは整数のシーケンスです。あなただけのインデックスで要素にアクセスする場合は、整数があります:彼らは非常に定義することにより
>>> b'abc'
b'abc'
>>> _[0]
97
を、バイトByteArrayとして定義はrange(0, 256)
に整数を含んでいます。したがって、それらは「符号なし8ビット整数」です。
は、例えば、私は限り私を理解するように、私のサーバ側コードで データ= conn.recv(1000000) これを有します私はデータ[0]が "符号なし8ビット整数"として扱われることを望みます。これはどのように可能ですか? – bbb
これはPython 3.xでのみ動作します。 Python 2.6にはb'stringリテラル構文がありますが、これは単にstrのエイリアスに過ぎず、古いバージョンではSyntaxErrorが得られます。 – musicinmybrain
@musicinmybrain:そのため、この質問は 'python-3.x'とタグ付けされています。 – SilentGhost
もう一つの非常に合理的でシンプルなオプション、あなただけの最初のバイトの整数値が必要な場合は、以下のようなものになるだろう(そしてそれらは単なる配列ではない)、または32ビット整数のようなマルチバイトオブジェクトを扱う場合は、structモジュールのようなものを使う必要があります。
- 1. 8ビット符号なしPCMを8ビット符号付きPCMに変換
- 2. 符号付き32ビット整数を符号なし32ビット整数に変換する方法は?
- 3. JavaScriptで符号付き16ビット整数に2バイトを変換する
- 4. 符号なし8ビット整数のビンジュム除算。 C
- 5. JavaScriptの32ビット符号なしリトルエンディアンを整数に変換する
- 6. 符号なし整数をCのバイト配列に変換する
- 7. DWORDバイト配列を符号なしの長整数に変換する
- 8. 符号なし整数変換C++
- 9. Clojureの符号なし16ビット整数
- 10. Pythonでバイトを符号付きの数値に変換する
- 11. 1バイトの符号なし整数C++
- 12. 64ビット整数をPythonの8つの別々の1バイト整数に変換する
- 13. u8バイトから7ビット符号付き整数を抽出
- 14. 2つの符号なし16ビット整数をPerlの符号付き32ビット整数に変換する方法
- 15. Int32から24ビット符号付き整数への変換
- 16. 符号なしchar []、ビットまたはバイト?
- 17. AWKの大きな符号なし整数を符号付き整数に変換する(バイナリ)
- 18. MFC CStringを符号なし整数に変換する
- 19. 符号なし文字配列を整数に変換する
- 20. JNI:符号なし整数をjintに変換する
- 21. 文字列を符号なし整数に変換する
- 22. Python 3では、ビット1の高い8ビットの符号なし整数を1バイトとして書き込むにはどうすればよいですか?
- 23. 符号なし整数から符号付き整数への変換または逆の変換
- 24. 32ビット符号なし整数の逆ビット
- 25. 16ビットの符号なし整数を倍精度に変換する関数の逆関数を求める
- 26. charの8ビット数を整数に変換する
- 27. 8ビットの符号なし整数とHEXの失敗の比較
- 28. Matlabの24ビットADCシリアル・リード・データを3バイト・フォーマットから符号付き整数(int32)に変換
- 29. 2つの16ビット符号付きバイトから符号付き整数を取得しますか?
- 30. Pythonを使って8ビットの符号なし整数をファイルに書き込む方法は?
'numpy'に依存したい場合、関数の中には' dtype'引数をとります。これは 'numpy.uint8'に設定することができます。 例: 'バイトストリーム= numpy.fromfile(INFILE、DTYPE = numpy.uint8)' – CrazyPyro