条件if(k&1)在c中是什么意思?

条件if(k&1)在c中是什么意思?,c,C,这里有一个c语言的代码示例,我不确定条件k&1是什么意思 int k,i,c; k = i >> c; if (k & 1) printf("1"); else printf("0"); k&1对k变量和1文本执行按位AND运算。如果k的LSB为0,则表达式的结果为0;如果k的LSB为1,则表达式的结果为1。由于表达式是if语句的条件,因此它隐式转换为bool,其中1映射为true,0映射为false。k&1对k变量和1文本执行按位and运算。如果k的LSB为0

这里有一个c语言的代码示例,我不确定条件k&1是什么意思

int k,i,c;
k = i >> c;
if (k & 1)
   printf("1");
else
   printf("0");

k&1对k变量和1文本执行按位AND运算。如果k的LSB为0,则表达式的结果为0;如果k的LSB为1,则表达式的结果为1。由于表达式是if语句的条件,因此它隐式转换为bool,其中1映射为true,0映射为false。

k&1对k变量和1文本执行按位and运算。如果k的LSB为0,则表达式的结果为0;如果k的LSB为1,则表达式的结果为1。由于表达式是if语句的条件,因此它隐式转换为bool,其中1映射为true,0映射为false。

请学习初始化局部变量。在使用它们之前。实际上,将任何变量初始化为某个值总是一个好主意,IMHO。如果说,k是5,在4位Snibble中,这将变成0101。现在用1来执行和操作这个二进制数,比如0101和0001,会得到0001,因为k的最后一位是开的,或者k是奇数。请学习初始化局部变量。在使用它们之前。实际上,将任何变量初始化为某个值总是一个好主意,IMHO。如果说,k是5,在4位Snibble中,这将变成0101。现在,用1来执行和操作这个二进制数,比如0101和0001,结果是,0001,因为k的最后一位是开的,或者k是奇数。