练习 2-6 编写一个函数setbits(x, p, n, y),该函数返回对x执行下列操作后的结果值:将x中从第p位开始的n个(二进制)位设置为y中最右边n位的值,x的其余各位保持不变。
2023-09-14 09:06:57 时间
C语言程序设计(第二版) 练习2-6 个人设计
练习 2-6 编写一个函数 setbits(x, p, n, y),该函数返回对x执行下列操作后的结果值:将x中从第p位开始的n个(二进制)位设置为y中最右边n位的值,x的其余各位保持不变。
代码块
#include <stdio.h>
#include <stdlib.h>
int setbits(int x, int p, int n, int y);
int main()
{
int a, b, c, d;
printf("Please enter original number: ");
scanf("%d", &a);
printf("Please enter bits: ");
scanf("%d", &b);
printf("Please enter move number: ");
scanf("%d", &c);
printf("Please enter compare number: ");
scanf("%d", &d);
printf("Result=%d\n", setbits(a, b, c, d));
system("pause");
return 0;
}
int setbits(int x, int p, int n, int y)
{
return ((y>>n<<n^y)<<(p+1-n))+(x>>(p+1)<<(p+1))+((x>>(p+1-n)<<(p+1-n))^x);
}
如果程序设计有错误或更简洁的方法,欢迎并感谢您指正出示,谢谢!
相关文章
- 递归执行顺序的探究
- 大叔经验分享(89)docker启动openjdk执行jmap报错
- sudo执行脚本找不到环境变量
- SAP 电商云 Spartacus UI 点了 Shipping Method 之后的执行逻辑
- 今天你的静态变量和静态代码块执行了吗?
- 【Android 插件化】VirtualApp 源码分析 ( 目前的 API 现状 | 安装应用源码分析 | 安装按钮执行的操作 | 返回到 HomeActivity 执行的操作 )
- 【Android 安装包优化】Android 应用中 7zr 可执行程序准备 ( Android Studio 导入可执行 7zr 程序 | 从 Assets 资源文件拷贝 7zr 到内置存储 )
- 执行shell脚本提示“syntax error near unexpected token for((i=0;i<$length;i++))”
- javascript的执行过程, 语法错误和运行时错误?
- 《TPM原理及应用指南》学习 —— TPM执行环境3
- iOS 执行ScrollView在空白空间-解