计算机原码和补码的加法运算(实验源代码)

合集下载
相关主题
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 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个整数:"<cin>>x;
cout<<" "<cin>>y;
cout<cout<q1=f1(x,b1);
q2=f1(y,c1);
m1=q1+1;
m2=q2+1;

cout<<" 求和:"<for(i=m1;i>=0;i--)
{
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<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<for(t=i;t>=0;t--)
{

//cout<b[n]=a1[t];
n++;


}
p=i;
cout<
for(i=0;i<=p+1;i++)
{
cout<}
cout<int j;
if(b[0]==1)
{
for(i=1;i<=p+1;i++)
{
if(b[i]==0)
b[i]=1;
else
b[i]=0;
}
}

cout<<" 该数的反码为:"<for(j=0;j<=p+1;j++)
{
cout<}
cout<cout<<" 该数的补码为:"<if(b[0]==0)
{
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<<" 溢出!" <b[r]++;
for(i=0;i<=p+1;i++)
cout<cout<



}
cout<
}
cout<return p;




}
















/*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<<" 该数的反码为:"<for(j=0;j<=p;j++)
{
cout<}


}*/













相关文档
最新文档