dan蛋 发表于 2020-3-29 08:26:01

忘记了这个程序是什么意思了?????

#include<stdio.h>

void main()
{
        char a,b,c,d;

        printf("请输入待检验数字:");
        scanf("%d",&a);
        b = a>>2;
        c = ~(~0<<4);//~是取反,<<是0向左边移动4位
        d = b&c;

        printf("%d\n",d);

}

墨羽岚 发表于 2020-3-29 09:29:35

转2进制后计算
比如我输入7
7 = 0000 0111
b = a>>2 = 0000 0001
c = ~(~0<<4) = ~(-1<<4) = ~(1111 0000) = 0000 1111
d = b&c = 0000 0001&0000 1111 = 0000 0001
输出1

time1970 发表于 2020-3-29 15:04:57

墨羽岚 发表于 2020-3-29 09:29
转2进制后计算
比如我输入7
7 = 0000 0111


程序的作用就是取一个字节的低4位中的高两位的值

召唤师 发表于 2020-4-1 09:41:37

看下位操作那一节
页: [1]
查看完整版本: 忘记了这个程序是什么意思了?????