私は範囲の[0,255]の整数のリストを持っています。これを一連のビットに変換したいと思います。各整数は8ビットを使用して表します。文字列を扱った後、8ビットごとに整数のリストに変換したい。どうやってするの?pythonどのように整数のリストとビットの文字列の間で転送するには?
答えて
外部のライブラリは必要ありません。 Pythonの組み込み関数を使用します。バイナリへ
整数:
i = 100
print "{0:08b}".format(i)
バイナリは整数へ:
b = "01100100"
print int(b, 2)
あなたはbitarray
モジュールが良いです使用して、大規模なビット列を構築する必要がある場合、あなたはあなたの答えに何をしたかのように:
bits = bitarray()
for i in pixels: bits.extend("{0:08b}".format(i))
申し訳ありませんが、私は明確に私の質問を説明しません。ビットに変換した後、私はそれらを操作します。表現する文字列を使用する場合、それはすべての私の記憶を消費します。 –
python intはすべて4bytesではないので、ビットオフセットを使用してビットを処理することはできません。C言語を使用しているものが好きです。 –
あなたはあなたの答えで 'bitarray'を利用することができます。私は私の答えを編集しました。 –
私は答えを得ました。これは私の答えです:
from PIL import Image
from bitarray import bitarray
from bitstring import BitArray
class Compress:
def readFile(self, filename):
self.img = Image.open(filename)
self.pixels = list(self.img.getdata()) # a list of int--[0,255]
def __toBitArray__(self):
self.bits = bitarray()
for i in self.pixels:
self.bits.extend(BitArray(uint=i, length=8).bin)
print(self.bits.length())
def saveFile(self, filename):
p = []
for i in range(self.bits.length()//8):
b = self.bits[i*8:i*8+8].to01()
p.append(BitArray(bin=b).uint)
self.img.putdata(p)
self.img.save(filename)
self.img.close()
if __name__ == '__main__':
c = Compress()
c.readFile('num.bmp')
c.__toBitArray__()
c.saveFile('test.bmp')
- 1. 文字列中の文字列のリストの出現をどのように数えるか - Python初心者
- 2. マルチライン文字列で特定の文字と文字列の間で文字列をキャプチャするにはどうすればよいですか? Pythonの
- 3. Pythonでは、文字列または整数の末尾のゼロをどのように数えますか?
- 4. Python - どのように簡単にリストのレイアウトと文字列をリストに変換するには?
- 5. 整数とビットの配列の間のビット演算
- 6. 最高の整数で文字列と整数のリストを再編成する
- 7. 整数のリストに基づいて文字列のリストを整理するC#
- 8. どのように文字列をPythonのリストに変換できますか?
- 9. のpython私は二つのリストを持っている文字列と整数
- 10. Python - 整数または文字列をスパークストリーミングに送信
- 11. リストの一部をPythonで文字列から整数に変換する3.4
- 12. 関数間で文字列を転送するC++
- 13. どのようにPythonのOrderedDictで整数の代わりに文字列キーでスライスできますか?
- 14. 整数のリストをファイルの文字列に変更する
- 15. Pythonで複数の引数を文字列書式で整列するには
- 16. リストにpythonの文字列
- 17. 文字列のPythonのevalの整数を、整数を返す
- 18. Cの文字ポインタ間で文字列を転送すると、プログラムがクラッシュするのはなぜですか?
- 19. Pythonのユニコード文字列で転送するバックスラッシュ
- 20. Pythonリストの文字列間の部分文字列を取得
- 21. どのように文字列に文字列内のすべての数字を回すためのPython
- 22. 整数と文字列を含むリストをPythonのファイルに書く
- 23. 0〜19の間の整数にハッシュする文字列
- 24. Pythonで文字列リストを整数に変換する方法は?
- 25. PHP:64ビット整数を文字列に変換する
- 26. アセンブリ内の128ビット整数の文字列への変換
- 27. リスト内の文字列を整数に変換する
- 28. 整数のリストに文字列を変換する
- 29. Python文字列json.loads間difrenceでどのようなエラー
- 30. (文字列と(文字列のリスト)))))のリスト内の文字列をチェックするにはどうすればよいですか?
あなたの試行の[mcve]を表示し、問題を説明してください。 – idjaw
「」%で使用するには、['b'"プレゼンテーションタイプ "](https://docs.python.org/2/library/string.html#format-string-syntax) () 'と' int'関数の第2の形式](https://docs.python.org/2/library/functions.html#int)を受け入れます'base'引数です。 –
jedwards