源程序:
#include <stdio.h>
int main()
{
int a, p1, p2, i;
int arr[32];
printf("Please input a p1 p2(p1, p2 < 32):\n");
scanf("%d %d %d", &a, &p1, &p2);
a = (a >> (p1 - 1)); //先往右移(p1 - 1)位,这样最右边就是第p1位
for (i = 0; i <= (p2 - p1); i++) //将第p1位到第p2位的数字分别存储在数组中
{
arr[i] = (a >> i) & 1;
}
for (i = (p2 -p1); i >= 0; i--) //上面是从右往左存的,这里倒过来输出就行
{
printf("%d ", arr[i]);
}
printf("\n");
return 0;
}
运行结果截图: