次のビットマスクを生成する最良の方法を見つけようとしています。
例:
if n = 1, output = 0x00000001 = 00000000000000000000000000000001
if n = 2, output = 0x00000003 = 00000000000000000000000000000011
if n = 3, output = 0x00000007 = 00000000000000000000000000000111
私は明らかな反復的な方法(ビットを1つずつ設定する)を知っていますが、それにはO(n)時間がかかります....これを一定の時間で実行できる「ビットマジック」があるかどうか疑問に思っています。または少なくともサブリニア時間 (LUT を使用せずに!!)
テイカーはいますか?