get i th bit:
num & (1 << i)
set i th bit to 1:
num | (1 << i)
clear i th bit to 0:
int mask = ~(1 << i)
num &= mask
clear right most 1
num &= num - 1
clear all bits from the most significant bit through i (inclusive)
int mask = (1 << i) - 1
num &= mask
clear all bits from i through 0 (inclusive)
int mask = ~(1 << i)
num = (num & mask) | (v << i)
update i th bit with the value in v
int mask = ~(1 << i)
num = (num & mask) | (v << i);