为什么我的位掩码程序不起作用?我如何重置/设置一点然后打印号码

问题描述

int main() {

    unsigned int nr,mask;

    printf("nr = ");   //for eg. if i use number 11111111 or 00111111 it prints 0. 
    scanf("%hu",&nr);

    if ((nr & 0b00001000) == 0)
        printf("0\n\n");
    else
        printf("1\n\n");

mask = 0b00001000;

    if (nr & mask)
        printf("1\n");
    else
        printf("0\n");

    printf("%x",nr);

    return 0;
}

我可以使用00001000 & nr(10101010)这样的掩码,将“ 1”放置在复位位置,以便第4位保持静止,但是再次无效(我不知道为什么)。但是我不知道如何在以后打印数字。

解决方法

暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!

如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。

小编邮箱:dio#foxmail.com (将#修改为@)