# include<stdio.h>
int main(void)
{
    int i;
                     //锁定的二进制位的数
    int k;
                     //要输出的数
    int n=0;
                   //统计执行次数
    printf("需要锁定的二进制位中的位数是第几位?:");
    scanf("%d",&i);
    i=1<<(i-1);
                //按照输入的位数用位运算符位移(第一位不需移动,所以i-1),所得值还赋给i
    for(k=i;n<=20;k++,n++)
     //从要锁定的数位为1,剩下为0的二进制开始输出,所以j值赋给k
    {
        k=k|i;
                 //将k在要锁定的i位的值是0时改为1
        printf("%d\n",k); 
    }
    return 0;
}
[
 本帖最后由 zsongmi 于 2011-6-2 13:43 编辑 ]