解题思路:逻辑与运算可以清楚杂质(&000....) 保留原值(&1111..)
注意事项:
参考代码:
#include<stdio.h>
int main(){
unsigned getbits(unsigned,unsigned,unsigned);
unsigned value,n1,n2;
scanf("%u%u%u",&value,&n1,&n2);
printf("%u\n",getbits(value,n1,n2));
return 0;
}
unsigned getbits(unsigned v,unsigned a,unsigned b){
unsigned x=0;
return v&(~x<<a)&(~x>>31-b);//二进制左移低位补0,二进制右移高位补0
}
0.0分
0 人评分
C语言程序设计教程(第三版)课后习题1.6 (C语言代码)浏览:585 |
C语言训练-求素数问题 (C语言代码)浏览:1459 |
A+B for Input-Output Practice (V) (C++代码)浏览:451 |
【亲和数】 (C语言代码)浏览:861 |
剪刀石头布 (C语言代码)不知道怎么直接在scanf中用枚举变量浏览:1320 |
printf基础练习2 (C语言代码)浏览:943 |
C语言程序设计教程(第三版)课后习题6.11 (C语言代码)浏览:549 |
剪刀石头布 (C语言代码)浏览:1755 |
校门外的树 (C语言代码)浏览:703 |
C语言程序设计教程(第三版)课后习题6.3 (C语言代码)浏览:660 |