C语言经典100例问题,取一个整数a从右端开始的4~7位,求助,高分!

2025-01-18 14:51:30
推荐回答(4个)
回答1:

移位操作是按二进制算的, 右移 一下相当于除2,左移乘2,说以10进制的不能通过移位实现取位,2,8,16进制的都可以哦。
不过还是有办法,就是用16进制变量存你的10进制变量,然后按16进制移位取位,最后按16进制输出,可达到你想要的效果哦~
我要上课去了,如代码还是写不出来,追问一下,我回来帮你写个

回答2:

思路是完全正确的,但不知你的第4~7位是从0开始算还是从1开始算呢
如果最后一位算是右端第1位,那么b = a>>3.
其他都没问题

回答3:

%o是八进制输入啊
你用%d 或%x试试,更明显观察测试结果。

回答4:

一个可行的方法,仅供参考:
#include
int main(void)
{
long a;
int b[10],i,j;
scanf("%ld",&a);
for(i=0;a>0;i++)
{
b[i]=a%10;
a=a/10;
}
for(j=1;j<=4;j++)
printf("%d",b[i-j-3]);
getchar();getchar();
}