c语言四进制加法,C语言八进制整数的加法运算

匿名用户

1级

2007-06-27 回答

vc++6.0编译,十进制换成八进制是参考的别人的程序,编译通过,运行这个正确

#include

#include

int * InitStack() //初始化栈

{

int * top,* base;

base=(int *)malloc(sizeof(int) * 50);

if(!base)

{

cout<

exit(1);

}

top=base;

return top;

}

int * push(int * top,int n) //元素入栈

{

* top=n;

top++;

return top;

}

int pop(int * top) //取出栈顶元素

{

int e;

top--;

e=*top;

return e;

}

int conversion1(int Num) //十进制转八进制子函数

{

int * top, * base;

int e,N;

int n,i;

int resul[8]={0,0,0,0,0,0,0,0};

N = Num;

top=InitStack();

base=top;

while(N!=0)

{

top=push(top,N%8);

N=N/8;

}

//cout<

n=0;

while(top!=base)

{

e=pop(top);

top--;

resul[n]=e;

n++;

}//cout<

e=0;

N=1;

for(i=n;i>0;i--)

{

e=e+resul[i-1]*N;

N*=10;

}

//for (n=0;n<8;n++)

// printf("%d",resul[n]);

return e;

}

int conversion2(int ss)//输入的八进制数转十进制子函数

{

int s[7];

int sswitch=0;

int ssreturn=0;

int n=0;

int i=10;

sswitch = ss;

for (n=0;n<7;n++)

{

s[n]=sswitch%i;

sswitch=sswitch/10;

}

i=1;

for(n=0;n<7;n++)

{

ssreturn = ssreturn+s[n]*i;

i*=8;

}

//printf("%d\n",ssreturn);

return ssreturn;

}

void fadd()

{

int ss1;

int ss2;

int ss1sw;

int ss2sw;

int result=0;

int resultsw;

cout<

cin>>ss1;

cout<

cin>>ss2;

ss1sw = conversion2(ss1);

ss2sw = conversion2(ss2);

resultsw = ss1sw+ss2sw;

//printf("结果为:%d\n",resultsw);

result = conversion1(resultsw);

cout<

}

void fsub()

{

int ss1;

int ss2;

int ss1sw;

int ss2sw;

int result=0;

int resultsw;

cout<

cin>>ss1;

cout<

cin>>ss2;

ss1sw = conversion2(ss1);

ss2sw = conversion2(ss2);

resultsw = ss1sw-ss2sw;

//printf("结果为:%d\n",resultsw);

result = conversion1(resultsw);

cout<

}

void main()

{

fadd();

fsub();

}

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值