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.mzph.cn/bicheng/42760.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

Check if a fine-tuned OpenAI model was successfully deleted

题意&#xff1a;检查微调后的OpenAI模型是否已成功删除 问题背景&#xff1a; I am doing some work with the OpenAI API with Python. Im working with fine-tuning and I am working on deleting an existing model and starting over again. I want to be able to check …

“四大水刊”水出新境界!仅一本剔除,飞升1区,IF3.8,1个月录用依然吊打!

本周投稿推荐 SCI • 能源科学类&#xff0c;1.5-2.0&#xff08;来稿即录25天&#xff09; • 计算机类&#xff0c;2.0-3.0&#xff08;纯正刊29天录用&#xff09; EI • 各领域沾边均可&#xff08;2天录用&#xff09; 知网 • 7天录用-检索&#xff08;急录友好&a…

我可能要和低价官网建设说拜拜了。

最近和团队商议&#xff0c;要不要放弃低价官网建设业务&#xff0c;大部分人要求放弃&#xff0c;我有点不舍&#xff0c;毕竟从公司开始就是靠网站建设业务存活和起价的。 对于设计师来说&#xff0c;对于美与体验的追求是无止境的&#xff0c;你让他搞个高大上网站&#xf…

《C++20设计模式》命令模式思考

文章目录 一、前言二、分析 拆解1、经典命令模式2、撤销操作3、关于Invoker类 三、实现 一、前言 哎&#xff01;只要是书上写的和经典设计模式不同&#xff0c;我就会很伤脑筋。&#x1f629; 命令模式到底是干什么的&#xff1f; 答&#xff1a;命令的发送者和接收者完全解…

28个常用的损失函数介绍以及Python代码实现总结

28个常用的损失函数介绍以及Python代码实现总结 最近在做多分类的研究&#xff0c;总是遇到这么多损失函数&#xff0c;应该挑选哪一个损失函数呢&#xff1f;这样的问题。于是心血来潮便想着对损失函数进行总结。 以下是一个预览总结&#xff1a; 损失函数名称问题类型L1范…

80+ ChatGPT 文献综述指令

进行文献综述通常似乎是一项艰巨的任务。它是学术和研究工作的重要组成部分&#xff0c;涉及对先前发表的与特定主题相关的研究进行全面和批判性分析。目标是深入了解该主题的知识状况&#xff0c;找出差距&#xff0c;并为进一步研究奠定基础。 传统上&#xff0c;文献综述是…

STL复习-序列式容器和容器适配器部分

STL复习 1. 常见的容器 如何介绍这些容器&#xff0c;分别从常见接口&#xff0c;迭代器类型&#xff0c;底层实现 序列式容器 string string严格来说不属于stl&#xff0c;它是属于C标准库 **底层实现&#xff1a;**string本质是char类型的顺序表&#xff0c;因为不同编译…

3-一元函数微分学

看到高次求导0---->立即想到奇偶性

STM32智能无人机控制系统教程

目录 引言环境准备智能无人机控制系统基础代码实现&#xff1a;实现智能无人机控制系统 4.1 数据采集模块 4.2 数据处理与飞行控制 4.3 通信与导航系统实现 4.4 用户界面与数据可视化应用场景&#xff1a;无人机应用与优化问题解决方案与优化收尾与总结 1. 引言 智能无人机控…

复旦微JFMVU3P-2FFVC1517 FPGA+AI全国产化人工智能数据处理平台,适用于雷达与中频信号采集、视频图像采集

板载FPGA实时处理器&#xff1a;JFMVU3P-2FFVC1517支持1个FMC&#xff08;HPC&#xff09;扩展接口支持2路QSFP光纤接口支持x8 Gen3 PCIE主机接口&#xff0c;系统带宽&#xff1e;5GByte/s支持1个R45自适应千兆以太网口支持1个GPIO/RS422接口 基于复旦微16nm工艺JFM9VU3P FPG…

C语言 -- 深入理解指针(二)

C语言 -- 深入理解指针&#xff08;二&#xff09; 1. 数组名的理解2. 使用指针访问数组3. 一维数组传参的本质4. 冒泡排序5. 二级指针6. 指针数组7. 指针数组模拟二维数组8. 字符指针变量9. 数组指针变量2.1数组指针变量是什么&#xff1f;2.2 数组指针变量怎么初始化 10. 二维…

SQLServer的系统数据库用别的服务器上的系统数据库替换后做跨服务器连接时出现凭证、非对称金钥或私密金钥的资料无效

出错作业背景&#xff1a; 公司的某个sqlserver服务器要做迁移&#xff0c;由于该sqlserver服务器上数据库很多&#xff0c;并且做了很多的job和维护计划&#xff0c;重新安装的sqlserver这些都是空的&#xff0c;于是就想到了把系统4个系统数据库进行替换&#xff0c;然后也把…

Android进入Recovery模式 显示无命令 / no command

问题&#xff1a; 进入 recovery 模式后就显示no command&#xff0c;倒地机器人 解决&#xff1a; 在此界面按住电源键不放&#xff0c;再按一下音量

Git 查看、新建、删除、切换分支

Git 是一个版本控制系统&#xff0c;软件开发者用它来跟踪应用程序的变化并进行项目协作。 分支的诞生便于开发人员在彼此独立的环境中进行开发工作。主分支&#xff08;通常是 main 或 master&#xff09;可以保持稳定&#xff0c;而新的功能或修复可以在单独的分支中进行开发…

MySQL之表的约束(上)

目录 空属性(NULL) 实例建表 插入操作 默认值(default) 建表 插入操作 NULL与default的结合 列描述 建表 zerofill 建表 插入操作 主键 建表 插入 主键的增加与去掉 去掉 增加 复合主键 插入的影响 真正约束字段的是数据类型&#xff0c;但是数据类型约束很单一&a…

2 ECMAScript

JavaScript 概述 JavaScript 编程语言允许你在 Web 页面上实现复杂的功能;如果你看到一个网页不仅仅显示静态的信息,而是显示依时间更新的内容,或者交互式地图,或者 2D/3D 动画图像,或者滚动的视频播放器,等等——你基本可以确定,这需要 JavaScript 的参与 JavaScript 编程语言…

gams103作业1含提高部分

第一部分 检测碰撞 首先需要对所有点进行碰撞检测&#xff0c;判断是否与平面发生碰撞 这里碰撞检测根据读入给定的表面点和表面的法向量求点积判断是否小于0&#xff0c;如果是则证明两个的方向相反&#xff0c;发生碰撞。 同时判断是否速度方向和法线方向相反。 当同时满…

我国静止无功发生器(SVG)市场规模逐渐扩大 高压SVG为主流产品

我国静止无功发生器&#xff08;SVG&#xff09;市场规模逐渐扩大 高压SVG为主流产品 静止无功发生器&#xff08;SVG&#xff09;又称为静止同步补偿器、先进静止补偿器、静止调相机等&#xff0c;是利用全控型功率器件组成的桥式变流器来实现动态无功调节的一种先进无功自动补…

Table 表格--分页序号自增

代码&#xff1a; import { Space, Table, Tag } from antd; import type { ColumnsType } from antd/es/table; import React, { useState } from react;interface DataType {key: string;name: string;age: number;address: string;tags: string[]; }const data: DataType[]…

python爬虫入门(四)之Beautiful Soup库

一、什么是Beautiful Soup库 1、Beautiful Soup库是用来做HTML解析的库 Beautiful Soup把看起来复杂的HTML内容&#xff0c;解析成树状结构&#xff0c;让搜索和修改HTML结构变得更容易 2、第三方库&#xff0c;先安装 终端输入pip install bs4 from bs4 import Beautiful…