Ampersand在变量之后做了什么?

use*_*925 -1 c++ binary integer

int a = 2;
a = (a&-a);
Run Code Online (Sandbox Code Playgroud)

那么这个街区中"&"的目的是什么?

结果是"2"

Mik*_*our 5

这是按位"和"运算符.更多空间可能更清晰

a = a & -a;
Run Code Online (Sandbox Code Playgroud)

甚至

a = a bitand -a;
Run Code Online (Sandbox Code Playgroud)