当前位置: 首页 > news >正文

C语言求10进制转2进制(除2取余法)

1.思路:除2取余法,也就是说用除以2取余来将10进制数转换为二进制

2.两种代码实现,这里用了两,一个递归一个非递归。

  递归是一种编程技术,其中一个函数直接或间接地调用自己。递归通常用于解决那些可以被分解为更小的、相同类型的子问题的问题。

  递归函数必须满足两个基本条件:

  1. 基本情况(Base Case):这是递归结束的条件,通常是一个简单的问题,可以直接解决而不需要进一步的递归调用。
  2. 递归步骤(Recursive Step):这是函数调用自己的部分,它将问题分解成更小的子问题。

  递归的工作原理可以类比为数学中的等比数列求和,或者像是一个俄罗斯套娃,每个问题都包含了一个更小的问题,直到达到基本情况。

3.代码实现

(1)递归:这里定义了一个printBinary函数,它递归地将输入的10进制数除以2并打印出余数,直到10进制数变为0。在main函数中,程序会提示用户输入一个10进制数,然后调用printBinary函数来打印出对应的二进制表示。

#include "stdio.h"// 函数用于打印二进制表示:除2取余
void printBinary(int decimal) {if (decimal > 0) {printBinary(decimal / 2);printf("%d", decimal % 2);}
}int main() {int decimal;printf("请输入一个10进制数: ");scanf("%d", &decimal);if (decimal < 0) {printf("负数的二进制表示不是标准的,这里错误!请重输!\n");} else {printf("该10进制数的二进制表示为: ");printBinary(decimal);printf("\n");}return 0;
}

(2)非递归:这个程序首先检查输入的数是否为负数,如果是,打印负号并取其绝对值。然后使用一个循环来不断地将10进制数除以2并取余数,将余数作为二进制的最低位,然后乘以10的相应次方,累加到binary变量中。循环继续直到10进制数变为0。最后,打印出得到的二进制数。

#include "stdio.h"
#include "math.h"//pow()int main() {int decimal, binary = 0, remainder, i = 0;printf("请输入一个10进制数: ");scanf("%d", &decimal);// 处理负数if (decimal < 0) {printf("-");decimal = -decimal; // 取其绝对值}// 循环直到decimal为0while (decimal > 0) {remainder = decimal % 2;binary = binary + (remainder * (int)pow(10, i));decimal = decimal / 2;i++;}printf("该10进制数的二进制表示为: %d\n", binary);return 0;
}

http://www.lryc.cn/news/398691.html

相关文章:

  • PHP 调用淘宝详情 API 接口的方法与实践
  • 风景区服务热线系统:智能化时代的旅游新选择
  • Linux修改配置文件后无法使用命令或无法进入桌面
  • 安卓14中Zygote初始化流程及源码分析
  • 等保一体机 | 什么是等保一体机?一台机器就能过等保吗?
  • 【活动预告】Apache IoTDB TsFile 智慧能源应用“上会”啦!
  • 【公益案例展】中国电信安全大模型——锻造安全行业能量转化的高性能引擎...
  • CV07_深度学习模块之间的缝合教学(2)--维度转换
  • Oracle字符集修改
  • k8s核心操作_k8s中的存储抽象_基本概念与NFS搭建_Deployment使用NFS进行挂载---分布式云原生部署架构搭建028
  • 数学建模·熵权法
  • 开放开源开先河(一)
  • 美团收银Android一面凉经(2024)
  • 触发器练习
  • Hadoop-25 Sqoop迁移 增量数据导入 CDC 变化数据捕获 差量同步数据 触发器 快照 日志
  • Facebook社交平台的未来发展趋势分析
  • 构建Memcached帝国:分布式部署策略与实践指南
  • Arcgis横向图例设置
  • 26.7 Django单表操作
  • Android --- Kotlin学习之路:自己写一个SDK给别的APP用(暴漏一个接口,提供学生的身高数据)
  • 租用海外服务器需要考虑哪些因素
  • php将png转为jpg,可设置压缩率
  • 华为HCIP Datacom H12-821 卷37
  • 某某会员小程序后端性能优化
  • Docker:基础概念、架构与网络模式详解
  • 全国大学生数据建模比赛c题——基于蔬菜类商品的自动定价与补货决策的研究分析
  • 【漏洞复现】飞企互联-FE企业运营管理平台 uploadAttachmentServlet—文件上传漏洞
  • 基于深度学习的语言生成
  • Kafka Rebalance详解
  • 在 Markdown 编辑器中插入 空格 Space 和 空行 Enter