十进制数转换为二进制数 C++

  • 前言
  • 一、十进制转换为二进制的数学算法
  • 二、代码实现
    • 1.设计转换函数transfer
    • 2.完整代码
  • 总结

前言

这篇文章和大家分享一下我个人对十进制数转换为二进制数的想法,目前暂时更新只整数十进制的转换,后续会更新带有小数的进制转换。(代码使用c++实现)


一、十进制转换为二进制的数学算法

设目标十进制数为n,用短除法一直除以2,循环这个过程并记录余数,当商为0时结束循环,余数从后往前读就是转换为的二进制数

eg:

二、代码实现

1.设计转换函数transfer

// flag是位数控制器,用remainder来暂时保存每一位余数,y是转换的二进制结果。我们的目标是把流程结束后的余数倒序输出 ,比如13的二进制数1101,但是每次除以2后得到的余数都是个位数,所以我选择使用一个位数控制器flag,从初始值1开始和remainder相乘,然后迭代(每次乘以十)进入下一次除以2的过程,然后每次迭代相加y就能得到二进制数1101(其实这个1101是用十进制显示的),而我们知道,当除数=0时就停止循环,所以我们设置If条件来控制结束
演示一遍具体的循环流程:

 eg:13(10)----1101(2):1. remainder=n%2=1; n=n/2=6; y=y+remainder*flag=0+1*1=1;flag=flag*10=10;2. remainder=n%2=0; n=n/2=3; y=y+reminder*flag=1+0*10=1;
flag=flag*10=100;4. remainder=n%2=1; n=n/2=1; y=y+reminder*flag=1+1*100=101;
flag=flag*10=1000;5. remainder=n%2=1; n=n/2=0;y=y+reminder*flag=101+1*1000=1101;
flag=flag*10=10000;
此时n=0,if(n==0)成立,停止循环,输出y。
int transfer(int n)
{int flag=1,y=0,remainder; while(1){remainder=n%2;n/=2;y+= remainder*flag;flag*=10;if(n==0){break;}}return y;
}

2.完整代码

代码如下(示例):

#include <cstdio>
#include<iostream>
using namespace std;
int a[1000001];
int main()
{int transfer(int n);int n,sum=0,y;scanf("%d",&n);y=transfer(n);printf("%d\n",y);return 0;
}
int transfer(int n)
{int flag=1,y=0,remainder;while(1){remainder=x%2;n/=2;y+=remainder*flag;flag*=10;if(n==0){break;}}return y;
}

总结

其实笼统来说,主要的思想就是从位数由低到高,把余数依次乘以1,10,100,1000再加起来就是用十进制的形式表示了转换后的二进制(1101=1乘1+0乘10+1乘100+1乘1000),需要注意的是位数控制器flag的使用。

十进制数转换为二进制数 C++相关推荐

  1. 十进制数转换为二进制数

    Description 输入一个十进制整数,将其转换为二进制数,并将转换结果输出. Input 多组测试数据,每组输入一个十进制整数. Output 将十进制数转换为二进制数,输出转换结果. Samp ...

  2. 数制转换,使用按权展开法将二进制数转换为十进制数,使用短除法除2取余计算十进制数转换为二进制数

    1:数制转换 1.1 问题 1)请将下列数字转换为十进制数: (110010011111)2 .(10110101110)2 2)请将下列十进制数转换为二进制: 156.2608.1043 1.2 方 ...

  3. #Python# 十进制数转换为二进制数(包含小数)

    #Python# 十进制数转换为二进制数(包含小数) 问题描述 问题分析 代码 问题描述 编写程序,输入十进制小数(只考虑正数),把它转换为以字符串形式存储的二进制小数,输出该二进制小数字符串.对于转 ...

  4. 十进制数转换为二进制数以及浮点数存储方法

    一.十进制数转换为二进制数 十进制数转换为二进制数时,由于整数和小数的转换方法不同,所以先将十进制数的整数部分和小数部分分别转换后,再加以合并. 1. 十进制整数转换为二进制整数 十进制整数转换为二进 ...

  5. 将一个很长(>30)的十进制数转换为二进制数

    进制转换 题目描述 将一个很长(>30)的十进制数转换为二进制数 输入 若干个很长的十进制数 每行一个 输出 转换为二进制,每行输出一个 样例输入 12345678901234567890123 ...

  6. C++ 将十进制数转换为二进制数方法

    本文介绍一种将十进制数转换为二进制数的方式. 实现要点: (1)用数组来存储每次对2取余的结果. (2)两次使用for循环,分别进行转换和输出. (3)% 取模运算. #include <ios ...

  7. java实现输入一个任意十进制数转换为二进制数

    package com.xingyi.one.firstdemo; import java.util.Scanner; public class FirstDemo {          //将任意一 ...

  8. c语言程序10进制转2进制,C语言十进制数转换为二进制数

    这是一个C语言 do while 循环示例:统计十进制正整数 n 转换为二进制数后,其二进制序列中包含的 1 和 0 的个数. 问题分析 输入:一个正整数. 输出:两个整数:1 的个数和 0 的个数. ...

  9. 用python将十进制数转换成二进制数_python中的数据结构-将十进制数转换为二进制数...

    二进制表示法在计算机科学中很重要,计算机中存储的所有值都以一串二进制数字,即0和1的形式存在. 如果无法在通用表示形式和二进制数字之间来回转换,我们将需要以非常奇怪的方式与计算机进行交互. 十进制的数 ...

最新文章

  1. 2021-2027年中国一次成型光学玻璃行业市场分析及投资潜力研究报告
  2. 如何搞垮一个技术大牛?
  3. RxJava Rxandroid 结合 Retrofit 使用
  4. 将一个域下的cookie传到另一个域_单点登录那些事儿(二)同域下的单点登录
  5. Coprime Conundrum 容斥原理
  6. python 数据分析库_五个 Python 常用数据分析库
  7. ubuntu linux本地源,如何制作UbuntuLinux操作系统的本地源?
  8. 腾讯这套SpringMvc面试题你了解多少?(面试必备)
  9. IOS内存管理「3」- 自动释放的基本概念和用法
  10. Linux 命令(28)—— tee 命令
  11. SDL_BlitSurface的参数是两个PNG时,如何保护其透明度
  12. 【nodejs】使用put方式向后端提交数据
  13. 超硬核十万字!全网最全 数据结构 代码,随便秒杀老师/面试官,我说的
  14. 有哪些芯片可以测量交流信号?可以测量哪些参数?
  15. 双光耦开关电源电路图_光耦817应用电路图汇总(PC817光电耦合器/开关电源/TL431)...
  16. docker修改redis配置文件
  17. 关注点分离(Separation of concerns, SoC)
  18. 月薪达到1万的web前端工程师,都会些什么呢?(附路线资料)
  19. 服务器磁盘阵列数据恢复方法和数据恢复过程详解
  20. android手机分辨率

热门文章

  1. android自定义进度条样式,android 进度条ProgressBar样式设置
  2. 《京韵大鼓——俞伯牙摔琴》(骆玉笙)(唱词文本)
  3. URL、URN与URI的区别与联系
  4. mac技巧|文件管理方法分享
  5. 寻找蛇形字符串python实现
  6. Obsidian学习从0到1 —— 插件(上)
  7. 学生用计算机锁定,巧用win7锁定计算机 防止孩子沉迷游戏
  8. 自制电吉他效果器 DIY PCB(一)前言
  9. 中小学教师计算机水平考核模拟,中小学教师计算机水平考核上机模拟题一二.doc...
  10. 计算机考证操作题文件