//输入一个整数a,再输入两个整数p1ip2(p1,p2<32),将该整数的二进制表示方法中从右端开始的p1到p2位i
#include <stdio.h>
void fun(long n,int p1,int p2);
int main()
{
long n;//32位的整数是长整形
int p1,p2;//p1,p2是位数
printf("请输入三个数:\n");
scanf("%ld",&n);
scanf("%d%d",&p1,&p2);
printf("%d到%d位的值是(p1,p2<32):\n",p1,p2);
fun(n,p1,p2);//调用fun函数
printf("\n");
return 0;
}
void fun(long n,int p1,int p2)
{
int i;
long t;
int temp = 0;//中间变量,如果p1>p2就交换值,保证p1是低位
if( p1 > p2)
{
temp = p1;
p1 = p2;
p2 = temp;
}
for(i = p1;i <= p2;i++)//输出p1到p2位
{
t = n & (1 << i-1);//通过1左移位数判断某位是否是0,第一位是左移0,所以是I-1
if (t)//如果是非0 则表示当前数非0
{
printf("1");
}
else
{
printf("0");
}
}
}
#include <stdio.h>
void fun(long n,int p1,int p2);
int main()
{
long n;//32位的整数是长整形
int p1,p2;//p1,p2是位数
printf("请输入三个数:\n");
scanf("%ld",&n);
scanf("%d%d",&p1,&p2);
printf("%d到%d位的值是(p1,p2<32):\n",p1,p2);
fun(n,p1,p2);//调用fun函数
printf("\n");
return 0;
}
void fun(long n,int p1,int p2)
{
int i;
long t;
int temp = 0;//中间变量,如果p1>p2就交换值,保证p1是低位
if( p1 > p2)
{
temp = p1;
p1 = p2;
p2 = temp;
}
for(i = p1;i <= p2;i++)//输出p1到p2位
{
t = n & (1 << i-1);//通过1左移位数判断某位是否是0,第一位是左移0,所以是I-1
if (t)//如果是非0 则表示当前数非0
{
printf("1");
}
else
{
printf("0");
}
}
}