请不要用递归函数!
#include<stdio.h>
#include<math.h>
void main()
{int ten,er=0,fig;int i;
printf("输入十进制数:");
scanf("%d",&ten);
if(ten!=1)
{for(i=1;ten>1;i++)
{
fig=ten%2;
ten=ten/2;
er+=fig*pow(10,(i-1));
} er+=1*pow(10,(i-1));
printf("转化为二进制数为:%d\n",er);
}
}
#include<math.h>
void main()
{int ten,er=0,fig;int i;
printf("输入十进制数:");
scanf("%d",&ten);
if(ten!=1)
{for(i=1;ten>1;i++)
{
fig=ten%2;
ten=ten/2;
er+=fig*pow(10,(i-1));
} er+=1*pow(10,(i-1));
printf("转化为二进制数为:%d\n",er);
}
}
温馨提示:答案为网友推荐,仅供参考
第1个回答 2008-04-10
#include <stdio.h>
#include <stdlib.h>
typedef struct
{
unsigned char bit_1 : 1;
unsigned char bit_2 : 1;
unsigned char bit_3 : 1;
unsigned char bit_4 : 1;
unsigned char bit_5 : 1;
unsigned char bit_6 : 1;
unsigned char bit_7 : 1;
unsigned char bit_8 : 1;
}bit;
int main()
{
int *p_int=NULL, len=sizeof(int);
bit *p_bit=(bit *)malloc(len*sizeof(bit));
p_int=(int *)p_bit;
*p_int=0;
printf("Please input a int value! \n");
scanf("%d",p_int);
while(len--)
printf("%d%d%d%d%d%d%d%d ", (p_bit+len)->bit_8, (p_bit+len)->bit_7,
(p_bit+len)->bit_6, (p_bit+len)->bit_5,
(p_bit+len)->bit_4, (p_bit+len)->bit_3,
(p_bit+len)->bit_2, (p_bit+len)->bit_1) ;
printf("\n");
free(p_bit);
return 0;
}
#include <stdlib.h>
typedef struct
{
unsigned char bit_1 : 1;
unsigned char bit_2 : 1;
unsigned char bit_3 : 1;
unsigned char bit_4 : 1;
unsigned char bit_5 : 1;
unsigned char bit_6 : 1;
unsigned char bit_7 : 1;
unsigned char bit_8 : 1;
}bit;
int main()
{
int *p_int=NULL, len=sizeof(int);
bit *p_bit=(bit *)malloc(len*sizeof(bit));
p_int=(int *)p_bit;
*p_int=0;
printf("Please input a int value! \n");
scanf("%d",p_int);
while(len--)
printf("%d%d%d%d%d%d%d%d ", (p_bit+len)->bit_8, (p_bit+len)->bit_7,
(p_bit+len)->bit_6, (p_bit+len)->bit_5,
(p_bit+len)->bit_4, (p_bit+len)->bit_3,
(p_bit+len)->bit_2, (p_bit+len)->bit_1) ;
printf("\n");
free(p_bit);
return 0;
}
第2个回答 2008-04-10
void change(int *N,int n)
{
int i=0;
for(i=0;i<16;i++)
N[i]=(n>>i)&0x0001;
}
转换后的二进制01码存于数组N。
{
int i=0;
for(i=0;i<16;i++)
N[i]=(n>>i)&0x0001;
}
转换后的二进制01码存于数组N。