永发信息网

c语言的一题

答案:2  悬赏:0  手机版
解决时间 2021-05-06 07:48
  • 提问者网友:我的未来我做主
  • 2021-05-05 07:29

#include <stdio.h>

void main ()
{
printf("0 & 0 is %d\n", 0 & 0);
printf("0 & 1 is %d\n", 0 & 1);
printf("1 & 1 is %d\n", 1 & 1);
printf("1 & 2 is %d\n", 1 & 2);
printf("15 & 127 is %d\n", 15 & 127);
}
谁能帮我解释一下么?谢谢咯

最佳答案
  • 五星知识达人网友:woshuo
  • 2021-05-05 08:04

上面的回答是错误的!


&是位运算符不是逻辑运算符。


结果是:


0 & 0 is 0 //解释:0和0所有32位(2进制数)都是0,所以每一位上求与为0,所以32位0就是整数0;
0 & 1 is 0 //解释:0的所有32位(2进制)都是0,所以每一位与别的数的位求与均为0,所以32位0就是整数0;


1 & 1 is 1 //解释:1的第一位为1,其他高位均为0,则求与后第一位为1,高位为0,则结果为1;
1 & 2 is 0 //解释:1的第一位为1,其他高位均为0,2的第二位为1其他位为0,则按位求与后结果为32位0,即整数0;


15 & 127 is 15 //解释:由于127的低7位均为1,则与15按位求与仍为15,其他高位按位求与为0,则结果为整数15。


上面说的是逻辑运算的结果。

全部回答
  • 1楼网友:舊物识亽
  • 2021-05-05 09:04

0与任何数相与为0,任何非0的数为真。所以结果分别为 0,0,1,1,1

我要举报
如以上回答内容为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
点此我要举报以上问答信息
大家都在看
推荐资讯