2.递归-求一个整数(十进制)的二进制

复制代码
#include <stdio.h>
int to_binary(int a);
int main()
{
  
  //求一个整数(十进制)的二进制(循环语句版)
  int a = 1234;
  int result;
  int shang;

  int size;
  int re;
  int b = a;
  int c = a;
  //获取int数组的长度
    while( ( re = b / 2 ) != 0  )
    {
        b = b / 2; 
        size++;

    }
    //printf("size: %d\n", size + 1);
    int stack[size+1];
    int index = 0;
    
    //将数据装载到数组中
    while(1)
    {  

      if( (shang = a / 2) == 0)
      {
        result = a % 2;
        //printf("%d\n",result );
        stack[index++] = result;
        break;
      }else{
        result = a % 2;
        //printf("%d\n",result );
        stack[index++] = result;
        a = a / 2;
      }

    }

      //打印数组
      printf("循环方式:");
      for (int i = size; i >= 0; i--)
      {
          printf("%d", stack[i]);
            
      }
      printf("\n");
      printf("递归方式:");
      
      to_binary(c);
      printf("\n");


    return 0;
}

int to_binary(int a)
{
    int r = a % 2;
    if(a / 2 != 0)
      to_binary(a / 2);

    printf("%d",r );

    return 0;
    
}
复制代码

 

posted @   学而不思则罔!  阅读(194)  评论(0编辑  收藏  举报
编辑推荐:
· 10年+ .NET Coder 心语,封装的思维:从隐藏、稳定开始理解其本质意义
· .NET Core 中如何实现缓存的预热?
· 从 HTTP 原因短语缺失研究 HTTP/2 和 HTTP/3 的设计差异
· AI与.NET技术实操系列:向量存储与相似性搜索在 .NET 中的实现
· 基于Microsoft.Extensions.AI核心库实现RAG应用
阅读排行:
· 10年+ .NET Coder 心语 ── 封装的思维:从隐藏、稳定开始理解其本质意义
· 地球OL攻略 —— 某应届生求职总结
· 提示词工程——AI应用必不可少的技术
· 字符编码:从基础到乱码解决
· SpringCloud带你走进微服务的世界
点击右上角即可分享
微信分享提示