¿Por qué la operación de bit i & (-i) es igual al bit más a la derecha?
Aprendí el algoritmo Fenwick Tree y estaba escrito "i & (-i) es igual al bit más a la derecha".
Por ejemplo,3 & (-3) = 1, 48 & (-48) = 16.
.
Probé el resultado parai <= 64
, y todos los valores satisfacen la condición.
Pero no sé por qué la condición satisface (prueba) para todos los enteros positivos i.
Por favor dime cómo probarlo.
EDITAR: puede suponer que i es un entero de 32 bits (pero 16 bits está bien). Si es así, el rango de valor i es1 <= i <= 2^31-1
.