• ベストアンサー

シフト演算子?

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

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

  • ベストアンサー
  • Kaneyan-R
  • ベストアンサー率42% (1341/3131)
回答No.2

3は二進数で0011(2+1)です。 これを左にシフトしますから 1シフト 00000011→00000110 = 4+2=6 2シフト 00000011→00001100 = 8+4=12 3シフト 00000011→00011000 = 16+8=24 になります。

noname#229394
質問者

お礼

ありがとうございました

その他の回答 (1)

  • maiko0333
  • ベストアンサー率19% (839/4401)
回答No.1

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

noname#229394
質問者

お礼

ありがとうございました

関連するQ&A