我有以下代码段:
int n = 10;
int k = n>>1;
std::cout<<k;
这打印5。
我希望k是n的二进制表示中的最后一位数。 像bin(n)= 1010 所以,我希望k为0。
我知道很长的方法是可行的。如果可能,请建议一个班轮。
修改
在完成评论和回答后,我发现有各种方法可以做到这一点。
其中一些是:
k = n%2
k = n&1
感谢所有回答这个问题的人。 :)
答案 0 :(得分:1)
=IF(FIND("quality",A80),SUBSTITUTE(A80,A80,"A quality life demands quality questions")," ")
更新:
我想补充说,c掩码并不罕见。我使用int来经常保持状态
int main( )
{
unsigned int val= 0x1010;
//so you just want the least siginificant bit?
//and assign it to another int?
unsigned int assign= val & 0x1;
std::cout << assign << std::endl;
val= 0x1001;
assign= val & 0x1;
std::cout << assign << std::endl;
return 0;
}
然后:
#define STATE_MOTOR_RUNNING 0x0001
#define STATE_UPDATE_DISPLAY 0x0002
#define STATE_COUNTER_READY 0x0004
答案 1 :(得分:0)
您无法避免某些计算。
int k = n % 10;
会得到最后一个十进制数字,因为该赋值给k
除以10的余数。