捕获"丢弃"位值

Noo*_*tor 5 java bit-manipulation

我在找什么?

让我们考虑int a = 5例如

它的二进制是: 101

所以,当我们这样做

a >> 1
Run Code Online (Sandbox Code Playgroud)

然后最右边的位,即在这种情况下为1,会掉落,我想在一些变量中捕获它.

1st iteration k = 1 
2nd iteration k = 0 
3rd iteration k = 1
Run Code Online (Sandbox Code Playgroud)

在这种情况下,我有一个硬编码值,但它可以是任意数字的用户输入.

如果我这样做b = a >> 1那么b= a/2在这里无能为力!

我为什么问这个问题?

例如,采用程序将十进制转换为二进制,在这种情况下,如果我可以捕获下降位,那么程序将在最多3-4行完成...

当然还有其他逻辑,我需要知道它是否可能!

Ark*_*kku 7

在移位之前将最低位存储在变量中,例如,

int a = 5;
int lowestBit = a & 1;
a >>= 1;
Run Code Online (Sandbox Code Playgroud)