C语言 某数输出二进制的某位

如题:

输入一个整数,截取它对应的二进制位中从右到左的第8-11位(最右边为第0位)。
**输入格式要求:"%d" 提示信息:"请输入一个整数:"
**输出格式要求:"它的从右开始的第11-8位为:
" "%d "
程序运行示例如下:
请输入一个整数:2997
它的从右开始的第11-8位为:
1 0 1 1

#define MASK 0xf  //MASK=(00001111)     
 
int main()
{                 
    int intNum, i, t;
 
    printf("请输入一个整数:");
    scanf("%d", &intNum);
    intNum >>= 8;
    intNum = intNum & MASK;
    printf("它的从右开始的第11-8位为:
");
    for (i = 1; i <= 4; i++)
    {                 
        t = intNum;
        t >>= (4 - i);
        t = t & 1;
        printf("%d ", t > 0 ? 1 : 0);
    }
 
    return 0;
} 


 
main()
{
 long i,x;
 printf("请输入一个整数:");
 scanf("%ld",&x);
 printf("它的从右开始的第11-8位为:
");
 for(i=11;i>7;i--)
 printf("%d ",(x&(1<<i))>0);
 printf("
");
}
 
原文地址:https://www.cnblogs.com/dosu/p/11897586.html