返回顶部
首页 > 资讯 > 后端开发 > 其他教程 >C++实现十进制数转换为二进制数的数学算法
  • 360
分享到

C++实现十进制数转换为二进制数的数学算法

2024-04-02 19:04:59 360人浏览 泡泡鱼
摘要

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

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

设目标十进制数为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++实现十进制数转换为二进制数的数学算法的详细内容,更多关于C++十进制转二进制的资料请关注编程网其它相关文章!

--结束END--

本文标题: C++实现十进制数转换为二进制数的数学算法

本文链接: https://lsjlt.com/news/135880.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

猜你喜欢
  • C++实现十进制数转换为二进制数的数学算法
    一、十进制转换为二进制的数学算法 设目标十进制数为n,用短除法一直除以2,循环这个过程并记录余数,当商为0时结束循环,余数从后往前读就是转换为的二进制数 eg: 二、代码实现 1....
    99+
    2024-04-02
  • Python二进制转化为十进制数学算法详解
    目录PythonPython二进制Python十进制Python二进制转化为十进制数学算法在python中可以通过内置函数int()函数进行二进制转十进制;int()函数可以将一个指...
    99+
    2023-01-06
    Python二进制转化为十进制 Python进制转化 Python二进制转化
  • PHP如何将二进制数据转换为十六进制表示
    这篇文章将为大家详细讲解有关PHP如何将二进制数据转换为十六进制表示,小编觉得挺实用的,因此分享给大家做个参考,希望大家阅读完这篇文章后可以有所收获。PHP 将二进制数据转换为十六进制表示 引言 在某些情况下,需要将二进制数据转换为十六进制...
    99+
    2024-04-02
  • php怎么将二进制转换为十进制
    本教程操作环境:windows7系统、PHP7.1版、DELL G3电脑php将二进制转换为十进制1、使用bindec()函数bindec($binary_string) 函数把二进制数$binary_string转换为十进制数。<p...
    99+
    2022-04-02
    php 进制转换 二进制转十进制
  • php如何将二进制转换为十进制
    本篇内容介绍了“php如何将二进制转换为十进制”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成!php将二进制转换为十进制的方法:1、使用bin...
    99+
    2023-06-25
  • 使用C#中的Convert.ToInt32()将十进制,八进制,十六进制字符串转换为整数
    可以使用Convert.ToInt32()方法将十进制、八进制和十六进制字符串转换为整数。示例代码如下:```csharpstrin...
    99+
    2023-09-13
    C#
  • C语言实现十六进制与二进制的相互转换
    目录十六进制->二进制二进制->十六进制本文中的代码可以将文件中的十六进制存储与二进制存储相互转换。 十六进制->二进制 原理是:每两位存储为一个字符(char)保...
    99+
    2022-11-13
    C语言 十六进制转二进制 C语言 二进制转十六进制 C语言 二进制 十六进制
  • 一篇教程教你学会Python进制转换(十进制转二进制、八进制、十六进制)
    一、导言 导语: 在计算机进行数据交换时,常常会有一个进制转换的过程,我们知道计算机只认0 和 1.在内存系统中,基本基于二进制进行运算的,但是有时候数据过于庞大,为了方便存储管理,计算机会使用十六进制存储数据,但是...
    99+
    2022-06-02
    Python 进制转换 python16进制转2进制
  • c语言二进制怎么转化为十进制
    C语言中可以使用`atoi`函数将二进制字符串转换为十进制整数。下面是一个示例:```c#include #include #inc...
    99+
    2023-09-14
    c语言
  • c语言怎么将十进制转为二进制
    本教程操作环境:windows7系统、c99版本、Dell G3电脑。c语言十进制转为二进制在C语言中,将十进制转换为其它进制时比较复杂。十进制整数转换为 N 进制整数采用“除 N 取余,逆序排列”法。具体做法是:将 N 作为除数,用十进制...
    99+
    2022-11-24
    进制转换 C语言
  • c语言如何将十进制转为二进制
    本篇内容主要讲解“c语言如何将十进制转为二进制”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“c语言如何将十进制转为二进制”吧!十进制转为二进制的方法:将十进制数字不断除以2直到商为零,然后将余数...
    99+
    2023-07-04
  • jquery如何实现十进制转二进制
    这篇文章主要介绍了jquery如何实现十进制转二进制的相关知识,内容详细易懂,操作简单快捷,具有一定借鉴价值,相信大家阅读完这篇jquery如何实现十进制转二进制文章都会有所收获,下面我们一起来看看吧。 ...
    99+
    2024-04-02
  • php怎么将数据转换为十进制
    本教程操作环境:windows7系统、PHP7.1版、DELL G3电脑php将数据转换为十进制使用bindec()函数--二进制数转十进制数bindec() 函数把二进制数转换为十进制数。<php echo bindec("...
    99+
    2020-06-08
    php 进制转换 十进制
  • php如何将数据转换为十进制
    本篇内容主要讲解“php如何将数据转换为十进制”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“php如何将数据转换为十进制”吧!转换方法:1、使用“bindec(值)”,可将二进制转为十进制;2、...
    99+
    2023-06-22
  • Shell脚本中不同进制数据转换的例子(二进制、八进制、十六进制、base64)
    shell可以在不调用第3方命令,表示不同进制数据。这里总结以下表示方法。shell 脚本默认数值是由10 进制数处理,除非这个数字某种特殊的标记法或前缀开头. 才可以表示其它进制类型数值。如:以 0 开头...
    99+
    2022-06-04
    脚本 例子 数据
  • 怎么在JavaScript中将二进制转换为十六进制
    怎么在JavaScript中将二进制转换为十六进制?相信很多没有经验的人对此束手无策,为此本文总结了问题出现的原因和解决方法,通过这篇文章希望你能解决这个问题。JavaScript中将二进制转为十六进制的方法var a=100;v...
    99+
    2023-06-14
  • Oracle中通过函数实现二、八、十、十六进制任意转换
    说明:本文主要参考于: http://www.eygle.com/archives/2004/06/oracle_howto_convert.html 一、先创建两个基本的进制转换函数: &n...
    99+
    2024-04-02
  • Java如何实现十进制与十六进制转换
    这篇文章主要介绍了Java如何实现十进制与十六进制转换,具有一定借鉴价值,感兴趣的朋友可以参考下,希望大家阅读完这篇文章之后大有收获,下面让小编带着大家一起了解一下。示例:import java.util.HashMap;impo...
    99+
    2023-06-20
  • C#如何实现转换十六进制
    这篇文章主要介绍“C#如何实现转换十六进制”,在日常操作中,相信很多人在C#如何实现转换十六进制问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对大家解答”C#如何实现转换十六进制”的疑惑有所帮助!接下来,请跟着小编一起来...
    99+
    2023-06-17
  • php怎么将数据转换为十六进制
    本教程操作环境:windows7系统、PHP7.1版、DELL G3电脑php将数据转换为十六进制1、使用dechex()函数--可把十进制转换为十六进制dechex(十进制值) 可把十进制数转换为十六进制数。<p...
    99+
    2019-05-23
    php 十六进制
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作