黑马程序员技术交流社区

标题: 编写一个移位函数,使移位函数既能循环左移又能循环右移。 [打印本页]

作者: Ios_bawenlong    时间: 2015-4-17 20:57
标题: 编写一个移位函数,使移位函数既能循环左移又能循环右移。
  1. void test2(){

  2.     //提示用户输入
  3.     printf("请输入一个整数:\n");
  4.    
  5.     //定义变量记录用户的输入
  6.     int getResult = 0;
  7.     int result = 0;
  8.     int n = 0;
  9.    
  10.     //接收用户输入的值
  11.     scanf("%d%*c%d",&getResult,&n);
  12.    
  13.     if (n > 0) {
  14.         //右移
  15.         for (int i = 0; i < 32; i++) {
  16.             
  17.             int result = getResult;
  18.             
  19.             if (i < n) {
  20.                
  21.                 //取对应右移位置的数值
  22.                 result = result >> (n - i -1) & 1;
  23.                
  24.             }else{
  25.                  //输出原来最高位的数值
  26.                  result = (result >> (31 - i + 1)) & 1;

  27.             }
  28.             //输出每个位上面的数字
  29.             printf("%d",result);
  30.         }
  31.         printf("\n");
  32.         
  33.     }else if (n < 0){
  34.          n *= -1;
  35.    
  36.         //左移
  37.         for (int i = 0; i < 32; i++) {
  38.             
  39.             int result = getResult;
  40.             
  41.             if (i < n) {
  42.                
  43.                 //取对应左移位置的数值
  44.                 result = result >> (n - i -1) & 1;
  45.                
  46.             }else{
  47.                 //输出没被切掉的值
  48.                 result = (result >> (31 - n)) & 1;
  49.                
  50.             }
  51.             //输出每个位上面的数字
  52.             printf("%d",result);
  53.         }
  54.         printf("\n");
  55.         
  56.     }else{
  57.         if (n == 0) {
  58.            
  59.             //不移动
  60.             for (int i = 0; i < 32; i++) {
  61.                
  62.                 result = getResult;
  63.                 result = result >> (31 - i) & 1;
  64.                 printf("%d",result);
  65.                
  66.             }
  67.             printf("\n");
  68.         }
  69.     }
  70. }
复制代码

作者: 365616804    时间: 2015-4-17 21:01
这是你自己做的么




欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/) 黑马程序员IT技术论坛 X3.2