int main()
{ int n,m,i,j=1;
scanf("%d",&n);
m=1<<31;
for(i=0;i<32;i++)
{ if(n&m==0) //putchar(n&m ? '1':'0');
j=0;
else j=1;
printf("%d",j);
}
}
printf下面还有一句n=n<<1; 就是输出一个数字的二进制数
C语言中,在用位与运算符时用if判断和用问号表达式判断怎么结果不一样
答案:2 悬赏:40
解决时间 2021-02-21 16:51
- 提问者网友:敏感魔鬼
- 2021-02-20 18:25
最佳答案
- 二级知识专家网友:woshuo
- 2021-02-20 18:38
运算符优先级的问题。& 的优先级比 == 低,所以是先算 m == 0。这还是C语言的上一辈B语言留下的历史遗留问题
全部回答
- 1楼网友:浪女动了心
- 2021-02-20 19:40
根据不同的编译器运算结果不一样,因为他们的结合方向不同(注意一点的是对同一个表达式进行运算)
我要举报
如以上问答内容为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
大家都在看
推荐资讯