关键的一步啊,负数的二进制转换,(当然还有小数)
#include<stdio.h>void main()
{
int a,i,j;
float b;
int A[10];
float B[10];
printf("请输入整数部分:\n");
scanf("%d",&a);
//printf("请输入小数部分:\n");
//scanf("%f",&b);
if(a>=0)
{ for(i=0;i<10;i++)
{
A[i]=a%2;
a=a/2;
}
printf("二进制为:");
for(i=9;i>=0;i--)
{
printf("%d",A[i]);
}
printf("\n");}
else
{
a=-a;
printf("-%d的二进制为:",a);
for(i=0;i<10;i++)
{
A[i]=a%2;
a=a/2;
}
printf("\n");
for(i=9;i>=0;i--)
{
if(A[i]==0)
printf("%d",A[i]+1);
else
printf("%d",A[i]-1); //这一步便不会了,实现了按位取反,,但是最后还有个加1啊
}
}
}