/*源码一位除法*/
#include<stdio.h>
#include<stdlib.h>
int x[]={0,0,1,0,0,1}, y[]={0,0,1,0,1,1}, fy[]={1,1,0,1,0,1};
void myDiv(int *x,int *y)
{
int Cn=0,tmp=0;
int i,j,k=0;
int shang=0,s[5];
int rlt[6];
for(j=5;j>=0;j--)
{
tmp=(x[j]+fy[j]+Cn)/2;
rlt[j]=(x[j]+fy[j]+Cn)%2;
Cn=tmp;
}
for(i=5;i>=2;i--)
{
if((rlt[0]==0)&&(rlt[1]==0))
{
shang=1;
for(j=0;j<5;j++)
{
rlt[j]=rlt[j+1];
}
rlt[5]=0;
s[k++]=shang;
Cn=0;
for(j=5;j>=0;j--)
{
tmp=(rlt[j]+fy[j]+Cn)/2;
rlt[j]=(rlt[j]+fy[j]+Cn)%2;
Cn=tmp;
}
}
else
if((rlt[0]==1)&&(rlt[1]==1))
{
shang=0;
for(j=0;j<5;j++)
{
rlt[j]=rlt[j+1];
}
rlt[5]=0;
s[k++]=shang;
Cn=0;
for(j=5;j>=0;j--)
{
tmp=(rlt[j]+y[j]+Cn)/2;
rlt[j]=(rlt[j]+y[j]+Cn)%2;
Cn=tmp;
}
}
}
if((rlt[0]==0)&&(rlt[1]==0)) s[k++]=1;
else s[k++]=0;
printf("商是 \n ");
for(j=0;j<5;j++) printf("%d ",s[j]);
printf("\n余数是 (2^(-4)) \n ");
for(j=2;j<=5;j++) printf("%d ",rlt[j]);
}
void main()
{
myDiv(x,y);
}