2016-07-16 14 views
-3

私は1101 0010を格納する変数Aを持っています。しかし、最初の5ビットを別の変数Bにコピーしたいだけです。また、別の変数のビットを変数Bに連結したいと考えています。 基本的にA = 1101 0010ならばB = 11010(ちょうどAから最初の5ビットを取る) とC = 1101 0111(Bの既存のビットに111を追加)ある変数の数ビットを別の変数にコピー

これはPythonでどのように実装するのですか?

+1

。下位3ビットを111などに置き換えたいのですか? –

+1

あなたが持っているコードを投稿できますか? –

答えて

0

A varが文字列の場合、それをスライスして連結する必要があります。ここで

は一例です:

>>> a = '11010 0010' 
>>> b = a[0:5] 
>>> b 
'11010' 
>>> c = b + '111' 
>>> c = int(c,2) 
>>> c 
215 
>>> bin(c) 
'0b11010111' 
+1

OPはデータが文字列だったと言っていましたか? –

+0

私はスペースのためゲストです。 – JazZ

+0

私の答えを更新しました。ありがとうございました@joel – JazZ

0

としてあなたはそれを行うことができます:これは非常に明確ではありません

>>> a=int('11010010', 2) 
>>> temp=int('11111000', 2) 
>>> b=(a&temp) 
>>> c=int('11010111', 2) 
>>> temp1=c&int('00000111', 2) 
>>> b=b|temp1 
>>> b 
215 
>>> bin(b) 
'0b11010111' 
+0

FWIWでは、整数リテラルを2進表記で指定することができます(例: '0b11010010')。 –

+0

おっと、それを知っていませんでした。ちょうどこの質問のために初めて使用しました。ありがとう。:) – shiva

関連する問題