梵高 发表于 2017-4-11 17:22:20

c语言

char x=32,y=3,~x&y答案是什么,为什么?

人造人 发表于 2017-4-11 17:54:49

#include <stdio.h>

int main(void)
{
        char x = 32, y = 3;
       
        printf("%d\n", ~x&y);
        printf("%d\n", (~x) & y);

        return 0;
}


3
3
请按任意键继续. . .

machimilk 发表于 2017-4-12 00:21:46

y= 3的二进制表示为00000011
x=32的二进制表示为00100000
因为取反~比按位与&优先级要高
所以先算~x
   
取反 00100000
--------------
   11011111
然后再和y按位与

    00000011
and 11011111       
-------------
    00000011
结果是二进制的11就是十进制的3

梵高 发表于 2017-4-12 12:57:52

machimilk 发表于 2017-4-12 00:21


非常感谢!

梵高 发表于 2017-4-12 13:00:15

人造人 发表于 2017-4-11 17:54


谢谢

Caleb 发表于 2017-4-13 12:45:54

学习了
页: [1]
查看完整版本: c语言