计算机原码和补码的加法运算(实验源代码)
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
计算机原码和补码的加法运算(实验源代码)
#include
void main()
{ int f1(int,int*);
int x,y,i,m1,m2;
int q1,q2;
int b1[100],c1[100];
cout<<" 请输入2个整数:"<
cout<<" "<
cout<
q2=f1(y,c1);
m1=q1+1;
m2=q2+1;
cout<<" 求和:"<
{
if(b1[i]+c1[i]==2)
{
b1[i]=0;
c1[i-1]++;
}
else if(b1[i]+c1[i]==0)
{
b1[i]=0;
}
else if(b1[i]+c1[i]==1)
{
b1[i]=1;
}
else if(b1[i]+c1[i]==3)
{
b1[i]=1;
b1[i-1]++;
}
if(b1[0]+c1[0]>=2)
cout<<" 溢出!"<
for(i=0;i<=m1;i++)
cout<
//while(b1[q1+1]+c1[q2+1]==
}
int f1(int m, int *b)//把一个整数转换为二制形式并输出
{
int a1[100];
int i=0;
int n=1;
int p;
int t;
int x;
int r;
x=m;
if (m>0)
b[0]=0;
else
b[0]=1;
if(m<0)m=-m;
while(int(m/2)!=0)
{
a1[i]=m%2;
i++;
m=m/2;
if(m==1)
a1[i]=1;
}
cout<
{
//cout<
n++;
}
p=i;
cout<
for(i=0;i<=p+1;i++)
{
cout<}
cout<
if(b[0]==1)
{
for(i=1;i<=p+1;i++)
{
if(b[i]==0)
b[i]=1;
else
b[i]=0;
}
}
cout<<" 该数的反码为:"<
{
cout<}
cout<
{
for(i=0;i<=p+1;i++)
cout<}
else
{
if(b[p+1]==0)
{
b[p+1]++;
for(i=0;i<=p+1;i++)
cout<}
else
{
b[p+1]=0;
r=p;
while(b[r]==1)
{
b[r]=0;
r--;
}
if(r==0)
cout<<" 溢出!" <
for(i=0;i<=p+1;i++)
cout<cout<
}
cout<
}
cout<
}
/*void fanma(int *b,int p)
{
int i,j;
if(b[0]==1)
{
for(i=1;i<=p;i++)
{
if(b[i]==0)
b[i]=1;
if(b[i]==1)
b[i]=0;
}
}
cout<<" 该数的反码为:"<
{
cout<}
}*/