【发布时间】:2020-01-16 15:33:27
【问题描述】:
我必须编写一个 c++ 函数来交换 int 的第 n 位和最低有效位。我找到了一些例子并这样做了:
v1 = v1 ^ ((((v1&1) ^ (v1>>n)&1) << LSBpos) | (((v1&1) ^ (v1>>n)&1) << n));
cout<<v1;
v1 是一个整数。 v1&1 是 LSB 的值。 LSBpos 应该是 LSB 的位置,但是我不知道怎么弄。有关于如何获得设置或清除的 LSB 位置的说明,但我只需要该位置,无论是否设置。
【问题讨论】:
-
最低有效位是 C++ 中的第 0 位。你的意思是最少设置位吗?