c语言中 (n & 1)什么意思啊

2024-11-15 23:20:33
推荐回答(5个)
回答1:

这应该是一段控制输出信息的字符控制信息。 使用%1f不明显,直接看示例。

#include
 
int main()
{
float f= 1.1f;
printf("f=%f\n", f);
printf("f=%10f\n", f);
return 0;
}

程序执行效果:

说明:%1f或者%10f,里面的数字指的是最小域宽限定符,简单的说即数值输出后要有多少个字符。 %1f保证输出的数至少有1个字符位 ,%10f表示输出的数至少是10位,如果不够10个字符,默认填充的是空格,程序员可以自己设置用什么填充。比如下面的代码当输出的字符不够10个时用0进行填充:

#include
 
int main()
{
float f= 1.1f;
printf("f=%f\n", f);
printf("f=%010f\n", f);
return 0;
}

回答2:

是相与的意思。算术"与"操作。“&&”这是逻辑“与”操作。基本操作有
0&1=0;
1&1=1;
0&0=0;
这一题中无论n的值是多少。只要它二进制的最后一位是0。结果就是0;如果是其最后一位是1结果就是1。
回答楼主这样的题目,挺没劲的。。别事事问知道,您不能多看看书啊??这样学的更快啊。

回答3:

首先,a&b表示,a和b在计算机中存储的对应二进制码按位取与:
例如:
a的二进制码为:0111,b的二进制码为:0011时:
0111
& 0011
= 0011
对应十进制形式为:7&3=3;
同理:因为1的对应存储的二进制码除了最低位,其他位都是0,所以,n&1要么为1(n为奇数时,n的最低位为1),要么为0(n为偶数时,n的最低位为0)。
综上可得:n&1等效于 n%2==1

回答4:

这个是让n和1做位与运算,假设你的n是0x0002,二进制就是0000000000000010,那么1是0x0001,二进制就是0000000000000001,两个做位运算后就是0,每个位和每个位要做位与运算

回答5:

这个是问号运算符。问号运算符是三目运算符,格式:
表达式1?表达式2:表达式3;
如果表达式1成立,则执行表达式2,否则执行表达式3
对于本题,(n)?(c++):(c--);的意思是如果n不等于0,那么执行c++,就是c自增1,如果n等于0,那么执行c--,就是c自减1