こんにちはゲストさん。会員登録(無料)して質問・回答してみよう!

解決済みの質問

シフト演算子?

print(3<<1) # 6
print(3<<2) # 12
print(3<<3) # 24
pythonで以下のようなコードでどうしてこのような出力結果になるのでしょうか?

投稿日時 - 2017-12-17 09:14:48

QNo.9408690

暇なときに回答ください

質問者が選んだベストアンサー

3は二進数で0011(2+1)です。
これを左にシフトしますから

1シフト 00000011→00000110 = 4+2=6
2シフト 00000011→00001100 = 8+4=12
3シフト 00000011→00011000 = 16+8=24

になります。

投稿日時 - 2017-12-17 10:40:21

お礼

ありがとうございました

投稿日時 - 2017-12-17 18:34:57

このQ&Aは役に立ちましたか?

0人が「このQ&Aが役に立った」と投票しています

回答(2)

ANo.1

数字は2進数で管理されている。
10進数で0を1個増やしたら10倍になるように
2進数で0を1個増やしたら(左に1ビットシフト)2倍になる。
2つずらせば4倍、3つずらせば8倍ですね。

投稿日時 - 2017-12-17 09:38:18

お礼

ありがとうございました

投稿日時 - 2017-12-17 18:34:46