|
我只会 整形的转换,c代码如下
#include "stdio.h"
#include "math.h"
main()
{
void binary(int num);
int num;
printf("please enter a number:\n");
scanf("%d",&num);
printf("the binary of num is:\n");
binary(num);
printf("\n");
}
void binary(int num)
{
int surplus,i=0,j,n,a[32];
n=fabs(num);
/*二进制算法:整数(正数)除以2其余数从末尾往前补*/
while(n>=2)
{
surplus=n%2;
n/=2;
a=surplus;
i++;
}
a=n;
/*余下的位置补0*/
for(j=i+1;j<32;j++)
a[j]=0;
/*输出二进制表示,正数则倒序输出,负数则取反*/
if(num>0)
for(i=31;i>=0;i--)
printf("%d",a);
if(num<0)
for(i=31;i>=0;i--)
{
a=fabs(a-1);
printf("%d",a);
}
} |
|