十进制转二进制 订阅
十进制数转换为二进制数时,由于整数和小数的转换方法不同,所以先将十进制数的整数部分和小数部分分别转换后,再加以合并。 展开全文
十进制数转换为二进制数时,由于整数和小数的转换方法不同,所以先将十进制数的整数部分和小数部分分别转换后,再加以合并。
信息
外文名
Decimal system to binary system
应用学科
数学
中文名
十进制转二进制
适用领域范围
电子、编程、编码
十进制转二进制二进制转十进制
小数点前或者整数要从右到左用二进制的每个数去乘以2的相应次方并递增,小数点后则是从左往右乘以二的相应负次方并递减。例如:二进制数1101.01转化成十进制1101.01(2)=1*20+0*21+1*22+1*23 +0*2-1+1*2-2=1+0+4+8+0+0.25=13.25(10)所以总结起来通用公式为:abcd.efg(2)=d*20+c*21+b*22+a*23+e*2-1+f*2-2+g*2-3(10)或者用下面这种方法:把二进制数首先写成加权系数展开式,然后按十进制加法规则求和。这种做法称为"按权相加"法。2的0次方是1(任何数的0次方都是1,0的0次方无意义)2的1次方是22的2次方是42的3次方是82的4次方是162的5次方是322的6次方是642的7次方是1282的8次方是2562的9次方是5122的10次方是10242的11次方是20482的12次方是40962的13次方是81922的14次方是163842的15次方是327682的16次方是655362的17次方是1310722的18次方是2621442的19次方是5242882的20次方是1048576即: 此时,1101=8+4+0+1=13再比如:二进制数100011转成十进制数可以看作这样:数字中共有三个1 即第六位一个,第二位一个,第一位一个(从右到左),然后对应十进制数即2的0次方+2的1次方+2的5次方, 即100011=32+0+0+0+2+1=35
收起全文
精华内容
下载资源
问答
  • python十进制转二进制 python中十进制转二进制使用 bin() 函数。 bin() 返回一个整数 int 或者长整数 long int 的二进制表示。 下面是使用示例: >>>bin(10) '0b1010' >>> bin(20) '0b10100' 补充:十进制转8进制和...
  • SIMULINK 中的十进制转二进制
  • 主要介绍了C语言十进制转二进制代码实例,并且转换后会统计二进制1的个数,实例简单明了,需要的朋友可以参考下
  • 主要介绍了使用Python内置函数:bin()、oct()、int()、hex()可实现进制转换的一些用法,需要的朋友可以参考下
  • 使用C++语言实现十进制转换为二进制的运算方法,可正负互
  • 使用C++语言实现十进制转换为二进制的运算方法,可正负互,解决了上次输出顺序错误的问题
  • 十进制数转换为二进制数以及十六进数,代码完整可运行,对于初学者有用。
  • 主要介绍了C语言用栈实现十进制转换为二进制的方法,结合实例形式分析了C语言栈的定义及进制转换使用技巧,需要的朋友可以参考下
  • 主要介绍了python十进制二进制的转换方法(含浮点数),小编觉得挺不错的,现在分享给大家,也给大家做个参考。一起跟随小编过来看看吧
  • 非调用系统自带的方法,此算法是自己写的!用户输入一个十进制数字,分别自动转换为二进制数与十六进制数,输入非数字提示错误
  • 二进制转十进制,十进制转二进制的算法
  • 适用于将二进制数转换为十进制,A为十进制,B为二进制。{A,B}每次左移一位,判断A的每四位是否>4,若大于四则+3,否则保持不变;B为多少位二进制数则左移多少次。最终A是B转换成十进制的数。代码为32位二进制数转换...
  • 十进制转二进制

    千次阅读 2019-05-31 17:49:45
    进制转二进制的普通方法大家都知道,就是除以2取余数,得到的商进行递归,直到商为0。得到的余数倒序的结果即为对应的二进制,如 十进制78 78 ÷ 2 = 39 余 0 39 ÷ 2 = 19 余 1 19 ÷ 2 = 9 余 1 9 ÷ 2 = 4...

    这几天同学问了个问题,大致意思为用户会输入一个数(2-10之间的一个数的1024次方的值,也就是一个很大很大很大的数),问如何转换为二进制。

    十进制转二进制的普通方法大家都知道,就是除以2取余数,得到的商进行递归,直到商为0。得到的余数倒序的结果即为对应的二进制,如

    十进制78
    78 ÷ 2 = 39 余 0
    39 ÷ 2 = 19 余 1
    19 ÷ 2 = 9  余 1
    9 ÷ 2 = 4   余 1
    4 ÷ 2 = 2   余 0
    2 ÷ 2 = 1   余 0
    1 ÷ 2 = 0   余 1 (商为0结束)
    倒序得到 1001110 即为对应的二进制

    对应的脚本为:

    //使用 Ten2Two(78);
    
    void Ten2Two(int num)
    {
        //用于存放获得的余数
        List<int> twoList = new List<int>();
    
        Divide2AndGetRemainder(num, ref twoList);
        twoList.Reverse();
    
        StringBuilder sb = new StringBuilder();
        for(int i = 0; i < twoList.Count; i++)
        {
            sb.Append(twoList[i]);
        }
        Debug.Log(string.Format("十进制数:{0} 转为二进制为: {1}", num, sb.ToString()));
        sb.Clear();
        sb = null;
    }
    
    void Divide2AndGetRemainder(int num, ref List<int> list)
    {
        if(num == 0)
        {
            return;
        }
        //添加余数
        list.Add(num % 2);
        //商递归
        Divide2AndGetRemainder(num / 2, ref list);
    }
    

    但是,这种做法是无法实现上面那个问题的,因为输入的数值很大,超过了long这些的上限,无法直接对这个值进行除2的处理。回归到除法的本质,多位数除以2,即从左到右,按位除以2,得到商即为最终结果对应位的数字,得到的余数则乘以10然后与下一位相加,例如:

    十进制678
    
    678 ÷ 2 即为 6 ÷ 2 = 3  余 0
                7 ÷ 2 = 3  余 1(十位的余数乘以10,与个位相加)
                18 ÷ 2 = 9 余 0(个位的余数即整个数字除以2的余数)
           得到 339 余 0
    
    等价于
    
    678 ÷ 2 = 339 余 0
    
    然后递归下去。

    所以对应上诉很大的数值,我们也按位进行处理,来获得它除以2的商和余数,代码如下(题目要求是C,这边就用C#写了,重点是思路)

    //使用 Ten2Two(inputNum);
    int[] inputNum = new int[] { 6, 7, 8, 9 };//假设这是用户输入的一个很大的数
    List<int> resultList = new List<int>();//用来存放按位除法的商
    
    void Ten2Two(int[] num)
    {
        //用于存放获得的余数
        List<int> twoList = new List<int>();
    
        StringBuilder sb = new StringBuilder();
        sb.Append("十进制数: ");
        for (int i = 0; i < num.Length; i++)
        {
            sb.Append(num[i]);
        }
    
        Divide2AndGetRemainder(num, ref twoList);
        twoList.Reverse();
        
        sb.Append(" 转换为二进制为: ");
        for (int i = 0; i < twoList.Count; i++)
        {
            sb.Append(twoList[i]);
        }
        Debug.Log(sb.ToString());
        sb.Clear();
        sb = null;
    }
    
    void Divide2AndGetRemainder(int[] num, ref List<int> list)
    {
        if(num.Length == 0)
        {
            return;
        }
    
        resultList.Clear();
        for(int i = 0, len = num.Length, remainder = 0, result = 0; i < len; i++)
        {
            //加上 上一位余数*10
            num[i] += remainder * 10;
    
            //求商
            result = num[i] / 2;
            if (i == 0 && result == 0)
            {
                //如果第一位的商为0,则不写入商的数组中
                //例如101/2的结果为50,不是050
            }
            else
            {
                resultList.Add(result);
            }
    
            //求余数
            remainder = num[i] % 2;
    
            if(i == len - 1)
            {
                //最后一位的余数即为整个值除以2的余数,写入结果当中
                list.Add(remainder);
            }
        }
    
        //递归
        Divide2AndGetRemainder(resultList.ToArray(), ref list);
    }
    

     

    展开全文
  • Matlab负数十进制转二进制代码 对于基础有用
  • 输入一个十进制数可以转化成二进制,八进制,十六进制。.java格式的右键编辑可以打开。
  • MATLAB中负数8位二进制与10进制之间的转换
  • JS十进制转二进制

    千次阅读 2020-08-01 08:52:00
    主要需求:十进制转二进制,可以控制指定的位数。 转化显示后的二进制数为bin-bit中输入的数字宽度。 dec-number为5,bin-bit为5,则转化后数字为00101。 如果bin-bit小于转化后的二进制本身位数,则使用原本的位数...

    原生代码

    主要需求:十进制转二进制,可以控制指定的位数。

    转化显示后的二进制数为bin-bit中输入的数字宽度。
    dec-number为5,bin-bit为5,则转化后数字为00101。
    如果bin-bit小于转化后的二进制本身位数,则使用原本的位数,如dec-number为5,bin-bit为2,依然输出101,但同时在console中报个错。

    一、十进制转二进制,不控制位数。

    <!DOCTYPE html>
    <html>
    
    <head>
        <meta charset="UTF-8">
        <title>10进制转2进制,不带位数控制</title>
    </head>
    
    <body>
         <input id="dec-number" type="number" placeholder="输入一个十进制非负整数">
         <button id="trans-btn">转化为二进制</button>
         <p id="result">运算结果</p>
         <script>
             //点击事件
             document.getElementById("trans-btn").onclick = function () {
                 var x = document.getElementById("dec-number").value;
                 dec2bin(x);
             }
     
             function dec2bin(decNumber) {
                 // 在这里实现你的转化方法,注意需要判断输入必须为一个非负整数
                 if (decNumber < 0) {
                     alert("请输入一个非负整数");
                 } else {
                     var q = binary(decNumber);
                     document.getElementById("result").innerHTML = ("计算结果为:" + q);
                 }
             }
     
             // 实现党点击转化按钮时,将输入的十进制数字转化为二进制,并显示在result的p标签内
             // Some coding
     
             function binary(num) {
                 var resArry = [];
                 var xresArry = [];
                 i = 0;
                 //除2取余
                 for (; num > 0;) {
                     resArry.push(num % 2);
                     num = parseInt(num / 2);
                     i++;
                 }
                 //倒序排列
                 for (j = i - 1; j >= 0; j--) {
                     xresArry.push(resArry[j]);
                 }
                 return xresArry.join().replace(/,/g, "");
             }
         </script>
     </body>
     
     </html>
    

    二、十进制转二进制,控制位数。

    <!DOCTYPE html>
    <html>
    
    <head>
        <meta charset="UTF-8">
        <title>10进制转2进制,带位数控制</title>
    </head>
    
    <body>
         <input id="dec-number" type="number" placeholder="输入一个十进制非负整数">
         <input id="bin-bit" type="number" placeholder="输入需要显示的位数">
         <button id="trans-btn">转化为二进制</button>
         <p id="result">运算结果</p>
         <script>
             //点击事件
             document.getElementById("trans-btn").onclick = function () {
                 var x = document.getElementById("dec-number").value;
                 var y = document.getElementById("bin-bit").value;
                 dec2bin(x, y);
             }
     
             function dec2bin(decNumber, bit) {
                 // 在这里实现你的转化方法,注意需要判断输入必须为一个非负整数
                 if (decNumber < 0) {
                     alert("请输入一个非负整数");
                 } else {
                     var q = binary(decNumber, bit);
                     document.getElementById("result").innerHTML = ("计算结果为:" + q);
                 }
             }
     
             // 实现党点击转化按钮时,将输入的十进制数字转化为二进制,并显示在result的p标签内
             // Some coding
     
             function binary(num, Bits) {
                 var resArry = [];
                 var xresArry = [];
                 i = 0;
                 //除2取余
                 for (; num > 0;) {
                     resArry.push(num % 2);
                     num = parseInt(num / 2);
                     i++;
                 }
                 //倒序排列
                 for (j = i - 1; j >= 0; j--) {
                     xresArry.push(resArry[j]);
                 }
                 //报错
                 if (Bits < xresArry.length) {
                     console.log("控制位小于转换位数");
                 }
                 //补0操作
                 if (Bits) {
                     for (r = xresArry.length; r < Bits; r++) {
                         xresArry.unshift("0");
                     }
                 }
                 return xresArry.join().replace(/,/g, "");
             }
         </script>
     </body>
     
     </html>
    

    涉及的知识点:

    十进制转二进制,除2取余,倒序排列。

    push()

    unshift()

    join()

    replace()

    非原生代码

    十进制转换为二进制:

    var num = 100;
    console.log(num.toString(2));
    

    toString()方法可把一个 Number 对象转换为一个字符串,并返回结果。

    语法

    NumberObject.toString(radix);
    

    其中,radix为可选。规定表示数字的基数,使 2 ~ 36 之间的整数。若省略该参数,则使用基数 10。但是要注意,如果该参数是 10 以外的其他值,则 ECMAScript 标准允许实现返回任意值。

    返回值

    数字的字符串。例如,当 radix 为 2 时,NumberObject 会被转换为二进制值表示的字符串。

    抛出

    当调用该方法的对象不是 Number 时抛出 TypeError 异常。

    二进制转十进制:

    var num = 1100100;
    console.log(parseInt(num,2));
    parseInt() 函数可解析一个字符串,并返回一个整数。

    语法

    parseInt(string, radix);
    其中,string为必需。要被解析的字符串。radix为可选。表示要解析的数字的基数。该值介于 2 ~ 36 之间。如果省略该参数或其值为 0,则数字将以 10 为基础来解析。如果它以 “0x” 或 “0X” 开头,将以 16 为基数。如果该参数小于 2 或者大于 36,则parseInt() 将返回 NaN。

    返回值

    返回解析后的数字。

    说明

    当参数 radix 的值为 0,或没有设置该参数时,parseInt() 会根据 string 来判断数字的基数。
    举例,如果 string 以 “0x” 开头,parseInt() 会把 string 的其余部分解析为十六进制的整数。如果 string 以 0 开头,那么 ECMAScript v3 允许 parseInt() 的一个实现把其后的字符解析为八进制或十六进制的数字。如果 string 以 1 ~ 9 的数字开头,parseInt() 将把它解析为十进制的整数。

    提示和注释

    注释:只有字符串中的第一个数字会被返回。
    注释:开头和结尾的空格是允许的。
    提示:如果字符串的第一个字符不能被转换为数字,那么 parseFloat() 会返回 NaN。

    parseInt(num,8);   //八进制转十进制
    parseInt(num,16);   //十六进制转十进制
    parseInt(num).toString(8)  //十进制转八进制
    parseInt(num).toString(16)   //十进制转十六进制
    parseInt(num,2).toString(8)   //二进制转八进制
    parseInt(num,2).toString(16)  //二进制转十六进制
    parseInt(num,8).toString(2)   //八进制转二进制
    parseInt(num,8).toString(16)  //八进制转十六进制
    parseInt(num,16).toString(2)  //十六进制转二进制
    parseInt(num,16).toString(8)  //十六进制转八进制
    
    展开全文
  • C语言-顺序栈实现十进制转换为二进制-八进制-十六进制
  • 十进制转二进制的方法与二进制转十进制的方法及八进制十六进制
  • 关于十进制二进制转换的讲解课件
  • labview2015版本,将二进制的字符串转换成十进制数值,
  • 主要介绍了Python实现的十进制小数与二进制小数相互转换功能,结合具体实例形式详细分析了二进制十进制相互转换的原理及Python相关实现技巧,需要的朋友可以参考下
  • 十进制转二进制的两种方法

    千次阅读 2021-07-17 11:17:59
    、使用步骤1.引入库2.读入数据总结前言一、pandas是什么?、使用步骤1.引入库2.读入数据总结 前言 提示:这里可以添加本文要记录的大概内容: 例如:随着人工智能的不断发展,机器学习这门技术也越来越重要,...

    一、十进制转二进制的两种方法

    (一).十进制转换为二进制
    1.求余法:使用2对十进制数求余数,直到余数或者结果为1,将得出的余数结果倒置,就得到了十进制数的二进制转换结果。
    示例:十进制为:55
    第一次求余数 55/2 = 27····· 1
    第二次求余数 27/2 = 13 ····· 1
    第三次求余数 13/2 = 6 ······ 1
    第四次求余数 6/2 = 3 ····· 0
    第五次求余数 3/2= 1 ····· 1
    第六次求余数 1/2=0 ····· 1
    将得到的结果倒置 得出55转为二进制结果为110111
    2.列出法:将二的次方一次列出,如:1 2 4 8 16 32 64 ···· 随后寻找与十进制数最为接近的那一个便得到了二进制的最高位,用十进制数将其减去得到结果,再到罗列出的二的次方中找到最接近的最高位,逐步匹配得到结果,将得到的结果一次排列。
    示例:55
    从0次方开始为: 1 2 4 8 16 32 64 128 256 ·····
    不大于55的最高位为 32 所以 32 的位置为 二进制结果 为1
    55-32 = 23
    不大于23的最高位为 16 所以 16 的位置为 二进制结果 为1
    23-16 = 7
    由于8 > 7(不匹配的位上为0)
    不大于7的最高位为 4 所以 4 的位置为 二进制结果 为1
    7-4 = 3
    不大于3的最高位为 2 所以 2 的位置为 二进制结果 为1
    3-2 =1
    最后只剩下1 与 1 的位置匹配 结果为1
    综上结果最终结果为 110111

    总结

    十进制转换为二进制的两中方法我个人认为在数字不大时采用第二种方法更为简便,如果喜欢的话请点波关注
    展开全文
  • python十进制转二进制的方法

    千次阅读 2021-09-28 08:27:53
    介绍2种十进制转二进制的方法: 1、直接用转换函数 m=bin(a) print(m) # 二进制 2、先把计算出来的二进制数列用字符串存储起来,然后再反向输出此字符串: a=eval(input('请您输入十进制数:')) m='' while a&...

    介绍2种十进制转二进制的方法:

    1、直接用转换函数

    m=bin(a)

    print(m) # 二进制

    2、先把计算出来的二进制数列用字符串存储起来,然后再反向输出此字符串:

    a=eval(input('请您输入十进制数:'))
    m=''
    while a>0:
        m+=str(a%2)  #a对2求余,添加到字符串m最后
        a=a//2
    print(m[::-1])   #反向输出
    展开全文
  • python 十进制转二进制

    万次阅读 多人点赞 2019-06-24 16:55:42
    python 十进制转2进制有内置函数 bin 方法1: in:bin(1) output:'0b1' 方法2: n = int(input('请输入要转换进制的数值:')) # x = 2 # 转换为二进制,所以这里取x=2 b = [] # 存储余数 while True: # ...
  • 对python进制转换(二进制、十进制和十六进制)及注意事项感兴趣的小伙伴,下面一起跟随编程之家 jb51.cc的小编两巴掌来看看吧!...二进制转十进制使用函数:int()实例:#结果是4int("100",2)...
  • 【C语言】十进制转换二进制

    千次阅读 2021-06-25 09:35:40
    本题要求实现一个函数,将正整数n转换为二进制后输出。 函数接口定义: void dectobin( int n ); 函数dectobin应在一行中打印出二进制的n。建议用递归实现。 裁判测试程序样例: #include <stdio.h> ...
  • # convert a decimal (denary, base 10) integer to a binary string ...5) # should give a ValueError 开心洋葱 , 版权所有丨如未注明 , 均为原创丨未经授权请勿修改 , 转载请注明python十进制转二进制,可指定位数!

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 422,154
精华内容 168,861
关键字:

十进制转二进制