こんにちは、@codeship_techです。
今回はPythonでのビット演算の考え方についての質問をピックアップしました!
ビット演算の左シフトがよく分からない。
左シフトは定義的には2進数に変換して左にシフトさせることで得られる2進数を10進数として返します。
これは簡単にいうと、シフトしようとする値を2^n倍するという意味です。
例えば1<<3
なら1*2^3となり8、3<<1
なら3*2^10となり3072です。
したがって一見何をしているかよく分からないfor i in range(1<<d):
という記述も、2^d回for文を回すというだけの意味になります。
授業日記についてのご意見
CodeShipの授業について「こんな事が知りたい・紹介して」というご意見・ご提案がありましたら、CodeShip公式Twitterアカウント(【CodeShip】プログラミングスクール)までDMまたはリプライにてお寄せください。