fenwick-tree

¿Qué significa (number & - number) en la programación de bits? [duplicar]

Esta pregunta ya tiene una respuesta aquí: significado de (número) & (número) ... val) % MOD; i += ( (i) & (-i) ); } } ¿Puede explicar lo que hacen en el código usando ( (i) & (-i) )?