c语言中printf(””,3&&2&5);右边的那个是什么意思?

2024-11-25 09:39:52
推荐回答(3个)
回答1:

&&符号表判断,当左右都不为零时,答案取1;
&为按位运算;2 的2进制表示为00000010
5的二进制表示为00000101
只有当同对应的二进位同时为1时,运算结果相应的二进位才取1,否则取0;故
很明显2&5=0;
而3&&0很显然为0;

回答2:

&是按位与运算,它的规则是:1&1=1 1&0=0 0&0=0,比如2&3,2变成二进制是0000 0010,3变成二进制是0000 0011。两者按位与就是0000 0010,换回来是2.
&&是逻辑与运算,如果运算符左右两边的值都为真,则表达式的值就为真,否则为假。左值和右值非0为真,0为假。表达式真则为1,假则为0.
&优先级比&&高,所以先算&,2&5则是0010&0101=0000,结果为0;之后算&&,3&&0为假,则是0

回答3:

&&逻辑与,结果只有0或是1
&按位与,结果是两个数按位与的,比如二进制数10和101按位与,结果会为0
谭老在最前面的部分讲解的