十进制转二进制 C语言实现

本文介绍了一个C语言程序,该程序能够将用户输入的浮点数转换为二进制形式。它首先分离整数部分和小数部分,分别进行转换,并提供了完整的源代码实现。
 #include   <stdio.h>  
  void   Ten2Two(int);  
  int   Ten2Two(float);  
   
  void   Ten2TwoInt(int   number)  
  {  
  int   reminder;  
  reminder=number%2;  
  number=number/2;  
  if   (number<=1)  
  {  
  printf("%d",number);  
  }  
  else  
  Ten2TwoInt(number);  
  printf("%d",reminder);  
  }  
   
  int   Ten2TwoFraction(float   fraction)  
  {  
  int   number;  
  int   n=1;  
  fraction=fraction*2;  
  do  
  {  
  number=0;  
  if   (fraction<=0.00001   )  
  {  
  printf("%d",number);  
  return   0;  
  }  
  if   (fraction>=1.0000)  
  {  
  fraction=fraction-1;  
  number=1;  
  }  
  printf("%d",number);  
  fraction=fraction*2;  
  n++;  
  }  
  while(fraction>=0.00001   &&   n<=5);  
  return   0;  
  }  
   
   
   
  int   main(void)  
  {  
  float   inumber;  
  int   integ;  
  float   fraction;  
  printf("Please   input   nunber:   ");  
  scanf("%f",&inumber);  
  printf("\n");  
  integ=(int)inumber;  
  fraction=inumber-(float)integ;  
  Ten2TwoInt(integ);  
  printf(".");  
  Ten2TwoFraction(fraction);  
  return   0;  
  }  
### 十进制转换二进制数的C语言实现 在C语言中,可以通过多种方法将十进制转换二进制数。以下是基于栈的思想来完成这一功能的一种常见实现方式[^3]。 #### 方法描述 通过不断取余操作获取每一位上的数值,并将其存入栈中;最后再依次弹出栈中的元素形成最终的二进制字符串形式输出。这种方法能够很好地体现数据结构的应用价值——即利用后进先出(LIFO)特性处理逆序问题。 下面提供了一个具体的代码实例: ```c #include <stdio.h> #include <stdlib.h> #define MAX_SIZE 100 typedef struct { int top; char items[MAX_SIZE]; } Stack; void initStack(Stack* s){ s->top = -1; } int isFull(Stack* s){ return (s->top == MAX_SIZE - 1); } int isEmpty(Stack* s){ return (s->top == -1); } void push(Stack* s, char item){ if(!isFull(s)){ s->items[++(s->top)] = item; } } char pop(Stack* s){ if(!isEmpty(s)){ return s->items[(s->top)--]; }else{ return '\0'; } } // 主函数部分 int main(){ long decNum; printf("请输入一个正整数:"); scanf("%ld", &decNum); Stack stack; initStack(&stack); while(decNum != 0){ push(&stack, (decNum % 2)+'0'); decNum /= 2; } printf("对应的二进制表示为:"); while (!isEmpty(&stack)) { putchar(pop(&stack)); } printf("\n"); return 0; } ``` 此段代码定义了一个简单的`Stack`结构体并实现了基本的操作如初始化、压栈弹栈等功能。随后,在主函数里接受用户的输入并通过循环计算得到相应的二进制位,逐个推送到堆栈之中。当所有的除法运算完成后,再次从堆栈顶部逐一取出字符打印出来即可获得完整的二进制表达式[^4]。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值