
こんにちは。
プログラミング初心者です。
以前teratailで整数長のものを1byteづつ取り出す際のコードを教えて頂きました。
python3
1i = 1500 2print('big') 3b = i.to_bytes( 4, byteorder='big') 4print(b[0]) #=1 5print(b[1]) #=5 6print(b[2]) #=0 7print(b[3]) #=0
今回は16進数の8byteデータを1byteづつに分け
それを1bit単位の0or1に分割したいのですが、
うまくいきません・・・
↓ダメな例
python3
1i = 1500 2print('big') 3b = i.to_bytes( 4, byteorder='big') 4print(b[0]) #=0 5print(b[1]) #=0 6print(b[2]) #=5 7print(b[3]) #=dc 8 9b8_2 = format(b[3],'08b') 10print(b8_2) #=11011100 11 12b8_bit = b8_2.to_bytes( 8, byteorder='big') 13print(b8_bit[0]) 14print(b8_bit[1]) 15print(b8_bit[2]) 16print(b8_bit[3]) 17print(b8_bit[4]) 18print(b8_bit[5]) 19print(b8_bit[6]) 20print(b8_bit[7])
また1byte毎に分けたデータを再度もとに戻す際は
「+」でも「&」でもうまくいかないのですが、どのようにすればよいのでしょうか・・・
python3
1i = 1500 2print('big') 3b = i.to_bytes( 4, byteorder='big') 4print(b[0]) #=0 5print(b[1]) #=0 6print(b[2]) #=5 7print(b[3]) #=dc 8b_s = b[0] + b[1] + b[2] + b[3]

回答4件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
退会済みユーザー
2017/04/13 03:38
2017/04/13 04:21
退会済みユーザー
2017/04/17 08:57