ソケットからバイト配列/リストを読み込んでいます。 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. 符号なし8ビット整数のビンジュム除算。 C
- 4. 符号なし整数をCのバイト配列に変換する
- 5. 1バイトの符号なし整数C++
- 6. 64ビット整数をPythonの8つの別々の1バイト整数に変換する
- 7. Int32から24ビット符号付き整数への変換
- 8. 符号なし文字配列を整数に変換する
- 9. 文字列を符号なし整数に変換する
- 10. JNI:符号なし整数をjintに変換する
- 11. MFC CStringを符号なし整数に変換する
- 12. 符号なし整数から符号付き整数への変換または逆の変換
- 13. Pythonを使って8ビットの符号なし整数をファイルに書き込む方法は?
- 14. 2つの16ビット符号付きバイトから符号付き整数を取得しますか?
- 15. 5ビットの符号付き整数?
- 16. mysqlでnビットの符号なし整数を表す
- 17. 26ビットの符号なし整数の大きな配列
- 18. バイナリファイルから3バイトを符号なし整数に変換する最も良い方法は?
- 19. Javascript:符号付き整数をjavacript値に変換する
- 20. 32ビット符号なし "Real"データ型(2つの16ビット符号付きワードに分割)をjavascriptに変換
- 21. C++の符号なし整数と符号なし整数の違い
- 22. Java:バイトを整数に変換する
- 23. 符号付きバイトを符号なしハーフバイトにする
- 24. 2バイト長の整数をPythonの整数に変換するには
- 25. 符号付き文字配列を符号なし整数に変換できますか?
- 26. Pythonの整数を2バイトのHex値に変換する
- 27. Pythonでバイトを整数に変換する
- 28. 2つの符号なし整数(HW)を乗算する32ビットを得る
- 29. 16ビット16進数の文字列をJavaで符号付き整数に変換する
- 30. Javascriptが8ビット符号なしjavascript配列を作成
'numpy'に依存したい場合、関数の中には' dtype'引数をとります。これは 'numpy.uint8'に設定することができます。 例: 'バイトストリーム= numpy.fromfile(INFILE、DTYPE = numpy.uint8)' – CrazyPyro