| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 982 人关注过本帖
标题:[求助]这个题怎么做啊
只看楼主 加入收藏
magic475
Rank: 1
等 级:新手上路
帖 子:66
专家分:0
注 册:2005-1-14
收藏
得分:0 

#include <stdio.h> #include <process.h>

int add (int a,int b) { int i=0,j=0,c=0; for(i=0,j=0;i<15;++i){ if( ((a&1) & (b&1)) | ((a&1) & (j)) | ((b&1) & (j)) ){ if( (a&1) & (b&1) & j) c|=0x4000; j=1; } else{ if( (a&1) | (b&1) | j) c|=0x4000; j=0; } if(i<14){ c>>=1; a>>=1; b>>=1; } } a>>=1; b>>=1; if(j^(a&1)^(b&1)) c|=0x8000; return c; }

int sub (int a,int b) { return add(a,add(~b,1)); }

int mul(int a,int b) { int c=0; int sign=(((a&0x8000) ^ (b&0x8000)) >>15) & 0x0001; if(a<0) a=add(~a,1); if(b<0) b=add(~b,1); while(b>0){ if(b&1){ c=add(c,a); b=sub(b,1); } else{ a<<=1; b>>=1; } } if(sign) c=add(~c,1); return c; }

int div(int a,int b) { int i=0; int sign=(((a&0x8000) ^ (b&0x8000)) >>15) & 0x0001; if(b==0){ printf("error\n"); exit(0); } if(a<0) a=add(~a,1); if(b<0) b=add(~b,1); if(sign && a!=0) printf("-"); while(a>=b){ a=sub(a,b); i=add(i,1); } printf("%d",i); if(a!=0){ printf("."); a=mul(a,10); i=0; while(a>=b){ a=sub(a,b); i=add(i,1); } printf("%d",i); } return 0; } void main() { printf("\n%d %d %d ",add(3,5),sub(5,3),mul(3,5)); div(9,0); }

2005-01-19 13:39
快速回复:[求助]这个题怎么做啊
数据加载中...
 
   



关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.016655 second(s), 8 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved