输入一个十进制数,用C语言输出其原码补码反码移码(十进制数可以为正负数整数小数)

2024-12-01 19:44:19
推荐回答(1个)
回答1:

#include
#include
void main()
{
int m,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 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
{
int w=0;
for(j=0;j if ((j+1)%8!=0) for(;(j+1)%8!=0;j++) y[j]=0;y[j]=1;
for(k=0;k for( k=0;k }
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");
}