#include<stdio.h>
#include<math.h>
voidmain()
{
intm,n,a[10],i=0,y[100],f[100],b[100],j,k;
printf("請輸入一個整數:");
scanf("%d",&n);
m=abs(n);
while(m!=0)
a[i]=m%2;
m=m/2;
i=i+1;
}
if(n>=0)
for(j=0;j<i;j++)y[j]=a[j];
if((j+1)%8!=0)for(;(j+1)%8!=0;j++)y[j]=0;
y[j]=0;
for(k=0;k<=j;k++)
f[k]=y[k];
b[k]=y[k];
else
intw=0;
for(j=0;j<i;j++)
y[j]=a[j];
if((j+1)%8!=0)for(;(j+1)%8!=0;j++)y[j]=0;y[j]=1;
for(k=0;k<j;k++)if(y[k])f[k]=0;elsef[k]=1;f[k]=1;
for(k=0;k<j;k++){if(k==0)b[k]=f[k]+1;elseb[k]=f[k]+w;if(b[k]==2){b[k]=0;w=1;}elsew=0;}b[k]=1;
printf("原碼:");for(k=j;k>=0;k--)printf("%d",y[k]);printf("\n");
printf("反碼:");for(k=j;k>=0;k--)printf("%d",f[k]);printf("\n");
printf("補碼:");for(k=j;k>=0;k--)printf("%d",b[k]);printf("\n");
#include<stdio.h>
#include<math.h>
voidmain()
{
intm,n,a[10],i=0,y[100],f[100],b[100],j,k;
printf("請輸入一個整數:");
scanf("%d",&n);
m=abs(n);
while(m!=0)
{
a[i]=m%2;
m=m/2;
i=i+1;
}
if(n>=0)
{
for(j=0;j<i;j++)y[j]=a[j];
if((j+1)%8!=0)for(;(j+1)%8!=0;j++)y[j]=0;
y[j]=0;
for(k=0;k<=j;k++)
{
f[k]=y[k];
b[k]=y[k];
}
}
else
{
intw=0;
for(j=0;j<i;j++)
y[j]=a[j];
if((j+1)%8!=0)for(;(j+1)%8!=0;j++)y[j]=0;y[j]=1;
for(k=0;k<j;k++)if(y[k])f[k]=0;elsef[k]=1;f[k]=1;
for(k=0;k<j;k++){if(k==0)b[k]=f[k]+1;elseb[k]=f[k]+w;if(b[k]==2){b[k]=0;w=1;}elsew=0;}b[k]=1;
}
printf("原碼:");for(k=j;k>=0;k--)printf("%d",y[k]);printf("\n");
printf("反碼:");for(k=j;k>=0;k--)printf("%d",f[k]);printf("\n");
printf("補碼:");for(k=j;k>=0;k--)printf("%d",b[k]);printf("\n");
}