数值n,其二进制的第m个位的开关情况

两个参数,一个代表数值,另一个代表第几位。通过移位运算辅以位运算来判定该位情况。

注意,从右往左,第一个其编号为0,和数组类似。因此要减一。

# include <stdio.h>

int open_or_close(int, int);

int main()
{
    int i, j;
    puts("Please enter the val,press q to quit:");
    while (scanf("%d", &i) == 1)
    {
        puts("Enter the position:");
        scanf("%d",&j);
        if (open_or_close(i, j))           //函数返回值为0或1,直接用函数做if条件
            puts("It is a open_bit.");
        else
            puts("It is close_bit");
        puts("Please enter the val:");
    }


    return 0;
}
int open_or_close(int n, int m) //如果为1,返回1,否则返回0
{
    return ((n<<(m-1)) & 1 )== 1 ? 1 : 0 ;
}

 

posted @ 2022-03-11 14:10  Tolerieren  阅读(39)  评论(0)    收藏  举报