Insert a Number in a Number

# 問題

ビット列の指定された位置に別のビット列を挿入せよ.

1
2
A = 1000000002桁目から6桁目にB = 101101を挿入
-> 101011010

# 答え

1
2
3
4
5
6
7
8
9
# aのi桁目からj桁目にbを挿入
def insert(a, b, i, j):
    ones = ~0 # 全部1
    left = ones << (j + 1)
    right = (1 << i) - 1
    mask = left | right
    a &= mask
    b <<= i
    return a | b

(1 << i) - 11が$i$個右端に並ぶ

Hugo で構築されています。
テーマ StackJimmy によって設計されています。