算术左移运算实现程序
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);
}
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);
}
相关文章推荐
- 一个简单的四则运算程序C语言实现--实现处理括号
- 《第九周任务二》定义Time类中的<<和>>运算符的重载,实现时间输入输出,改造源程序中对运算结果的显示方式,使程序读起来更自然
- 四则运算程序的设计实现过程
- 编写一个程序,实现链栈的各种基本运算
- 3*(4+6)-7 # 用代码实现这个运算表达式,仅包含逆波兰式部分,算术结果部分未写出
- 用Ruby给小宝做的数学算术口算练习程序(带四则运算的!)
- 编写一个程序,实现链队的各种基本运算
- 数据库中的数据运算,有的SQL能实现,程序语言同样能实现,是用SQL运算?还是用程序语言?
- java实现简单的数字运算以及dos命令运行Java程序
- 一个简单的四则运算程序C语言实现--无法处理括号
- 定义分数类中<<和>>运算符重载,实现分数的输入输出,改造原程序中对运算结果显示方式,使程序读起来更自然。
- switch case实现两个数的算术运算
- PTA 表达式转换 算术表达式有前缀表示法、中缀表示法和后缀表示法等形式。日常使用的算术表达式是采用中缀表示法,即二元运算符位于两个运算数中间。请设计程序将中缀表达式转换为后缀表达式。
- 顺序栈实现算术运算。
- 算术运算验证码实现
- 程序实现自动生成30道四则运算题目(1)
- 有限域(4)——程序实现有限域的运算
- 如何只用逻辑运算实现算术加减乘除运算
- 3.结对编程成果报告(小学生四则运算的出题程序,Java实现)
- 01:用java实现四则运算题目生成程序