您的位置:首页 > 其它

算术左移运算实现程序

2014-01-13 16:10 162 查看
#include<stdio.h>

int larith_shift(int opnd,int shiftnum,int kind)

{

 int i,flag=0;

 switch (kind)

 {

 case 0:

  flag=opnd&0x80000000;

  break;

 case 1:

  flag=opnd&0x8000;

 case 2:

  flag=opnd&0x80;

  break;

 default:

  return -1;

 }

 for(i=0;i<shiftnum;i++)

 {

  opnd<<=1;

  if(flag)

   switch(kind)

  {

 case 0:

  opnd|=0x80000000;

  break;

 case 1:

  opnd|=0x8000;

  break;

 case 2:

  opnd|=0x80;

  break;

  }

 }

 return opnd;

}

main()

{

 char a=-60,b;

 b=(char)larith_shift(a,1,2);

 printf("a<<1=%d\n",b);

}

内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: 
相关文章推荐