正在加载图片...
e"C:\e-programming\10\Debug\pg10201a.exe 回 请输入一个八进制数a:331 人a右端开始,取出其第m位到第n位。 请输入整数n和n,中间用溟号分隔:5.& a的八进制数和十进制数芬别为:331,21? 取出结果的八进制和十进制数分别为:15,13 Press any key to continue 图10.1.5pg10201a.cpp的运行结果 2.打开c:lc-programming1O八pgl0202.cpp,该程序是将一个整数a进行右循环移n位,即 将a中原来左边(32-n)位右移n位,原来最右端n位移到最左边n位。该源程序内容如下: #include <stdio.h> void main(void) unsigned a.b.c: int n; printf("请输入整数a(八进制数)和n(十进制数),中间用逗号分隔:")方 scanf("%0,%d",&a,&n); b=a<<(32-n: c=a>>n: c=clb; printf"最终结果c=%on",c;少 } 要求:修改上面的程序,将一个整数a进行右循环移n位改为进行左循环移n位,修改后 的程序以pgl0202a.cpp保存。 训练要点:读懂程序中将一个整数a进行右循环移n位的算法思路,掌握位运算符的运算 规则,在此基础上,实现左循环移n位。 修改后程序的运行结果如图10.1.6所示。 ex"C:\c-programming\10\Debug\pg10202a.exe" 回☒ 情搅公整数a(八进制数>和n<十进制数),中间用逗号分隔:7.3园 最终结果c=?8 Press any key to continue 图10.1.6pg10202a.cpp的运行结果 -212-图 10.1.5 pg10201a.cpp 的运行结果 2.打开 c:\c-programming\10\pg10202.cpp,该程序是将一个整数 a 进行右循环移 n 位,即 将 a 中原来左边(32-n)位右移 n 位,原来最右端 n 位移到最左边 n 位。该源程序内容如下: #include <stdio.h> void main(void) { unsigned a,b,c; int n; printf("请输入整数 a(八进制数)和 n(十进制数),中间用逗号分隔:"); scanf("%o,%d",&a,&n); b=a<<(32-n); c=a>>n; c=c|b; printf("最终结果 c=%o\n",c); } 要求:修改上面的程序,将一个整数 a 进行右循环移 n 位改为进行左循环移 n 位,修改后 的程序以 pg10202a.cpp 保存。 训练要点:读懂程序中将一个整数 a 进行右循环移 n 位的算法思路,掌握位运算符的运算 规则,在此基础上,实现左循环移 n 位。 修改后程序的运行结果如图 10.1.6 所示。 图 10.1.6 pg10202a.cpp 的运行结果 - 212 -
<<向上翻页向下翻页>>
©2008-现在 cucdc.com 高等教育资讯网 版权所有