精华内容
下载资源
问答
  • 十进制整数转换成二进制采用“除2倒取余”,十进制小数转换成二进制小数采用“乘2取整”。 例题: 135D = __ B 解析:如下图所示,将135除以2,得余数,直到不能整除,然后再将余数从下至上倒取。得到结果:1000 ...

    1.十进制转R进制

    1.1 十进制转二进制

    十进制整数转二进制

    十进制整数转换成二进制采用“除2倒取余”,十进制小数转换成二进制小数采用“乘2取整”。

    例题: 135D = ______ B

    **解析:**如下图所示,将135除以2,得余数,直到不能整除,然后再将余数从下至上倒取。得到结果:1000 0111B.
    这里写图片描述

    图1.十进制整数转二进制

    十进制小数转二进制

    十进制小数转换成二进制小数采用 “乘2取整,顺序排列” 法。

    具体做法是:

    用2乘十进制小数,可以得到积,将积的整数部分取出,再用2乘余下的小数 部分,又得到一个积,再将积的整数部分取出,如此进行,直到积中的小数部分为零,或者达到所要求的精度为止。

    然后把取出的整数部分按顺序排列起来,先取的整数作为二进制小数的高位有效位,后取的整数作为低位有效位。

    例题: 0.68D = ______ B(精确到小数点后5位)

    **解析:**如下图所示,0.68乘以2,取整,然后再将小数乘以2,取整,直到达到题目要求精度。得到结果:0.10101B.

    在这里插入图片描述

    图2.十进制小数转二进制

    1.2 十进制转八进制

    思路和十进制转二进制一样,参考如下例题:

    例题: 10.68D = ______ Q(精确到小数点后3位)

    **解析:**如下图所示,整数部分除以8取余数,直到无法整除。小数部分0.68乘以8,取整,然后再将小数乘以8,取整,直到达到题目要求精度。得到结果:12.534Q.

    这里写图片描述

    图3.十进制转八进制

    1.3 十进制转十六进制

    思路和十进制转二进制一样,参考如下例题:

    例题: 25.68D = ______ H(精确到小数点后3位)

    **解析:**如下图所示,整数部分除以16取余数,直到无法整除。小数部分0.68乘以16,取整,然后再将小数乘以16,取整,直到达到题目要求精度。得到结果:19.ae1H.

    这里写图片描述

    图4.十进制转十六进制
    # 2.R进制转十进制 ## 2.1 二进制转十进制 **方法为:**把二进制数按权展开、相加即得十进制数。(具体用法如下图)

    例题: 1001 0110B = ______ D

    **解析:**如下图所示。得到结果:150D.

    这里写图片描述

    图5.二进制转十进制

    2.2 八进制转十进制

    八进制转十进制的方法和二进制转十进制一样。

    例题: 26Q = ______ D

    **解析:**如下图所示。得到结果:22D.

    这里写图片描述

    图6.八进制转十进制

    2.3 十六进制转十进制

    例题: 23daH = ______ D

    **解析:**如下图所示。得到结果:9178D.

    这里写图片描述

    图7.十六进制转十进制

    3.二进制转八进制

    二进制转换成八进制的方法是,取三合一法,即从二进制的小数点为分界点,向左(或向右)每三位取成一位。

    例题: 1010 0100B = ____Q

    **解析:**计算过程如下图所示。得到结果:244Q.

    这里写图片描述

    图8.二进制转八进制

    4.二进制转十六进制

    二进制转换成八进制的方法是,取四合一法,即从二进制的小数点为分界点,向左(或向右)每四位取成一位。

    例题: 1010 0100B = ____H

    **解析:**计算过程如下图所示。得到结果:a4H.

    这里写图片描述

    图9.二进制转十六进制

    5.工欲善其事,必先利其器

    下面的表格是8位二进制所对应的十进制数值,对进制转换以及类似题目的理解非常有用:

    11111111B
    1286432168421D

    注:B:二进制
           D:十进制


    例题: 135D = ______ B

    **解析:**有了上面二进制对应十进制数值的表格,我们就可以将题目给的十进制135拆分为:128+7,再从表格中找到对应的数值,拼凑即可得到答案。
    135D = 128D + 7D = 1000 0111B

    展开全文
  • C语言算法之将十进制转换成二进制

    万次阅读 多人点赞 2018-06-20 14:35:29
    导语:在C语言中没有将...下面给大家讲述一下如何编程实现将十进制数转换成二进制数。 先将源代码展示给大家: #include <stdio.h> void main() { //进制转换函数的声明 int transfer(int x)...

    导语:在C语言中没有将其他进制的数直接输出为二进制数的工具或方法,输出为八进制数可以用%o,输出为十六进制可以用%x,输出为二进制就要我们自行解决了。下面给大家讲述一下如何编程实现将十进制数转换成二进制数。

    原文的实现方式太年轻了,是我大一的时候写的。由于太多小伙伴被『溢出』困扰(在溢出的情况下原文的实现就不灵了),补充下面这种最佳的实现方式。

    最佳的方式是利用栈先进后出的特性,计算每一位(0或1)压入栈中,再将所有元素出栈得到的01串就是目标二进制数。以下为C++实现代码,想用C语言实现的可以进行相应的改造,用数组实现一个栈,用字符数组实现字符串。

    #include <iostream>
    #include <stack>
    
    using namespace std;
    
    string transfer(int x) {
        if (x == 0) {
            return "0";
        }
        string ret;
        stack<char> st;
        while (x > 0) {
            if (x % 2 == 1) {
                st.push('1');
            } else {
                st.push('0');
            }
            x /= 2;
        }
        while (!st.empty()) {
            ret.push_back(st.top());
            st.pop();
        }
        return ret;
    }
    
    int main() {
        int x;
        cin >> x;
        cout << transfer(x) << endl;
        return 0;
    }

    下面是大一时候的实现,没有考虑溢出的问题,对于不懂栈的同学可以看一下。

    先将源代码展示给大家:

    #include <stdio.h>
    void main()
    {
        //进制转换函数的声明
        int transfer(int x);
        int x;
        printf("请输入一个十进制数:");
        scanf("%d",&x);
        printf("转换成二进制数是:%d\n",transfer(x));
    }
    int transfer(int x)
    {
        int p=1,y=0,yushu;
        while(1)
        {
            yushu=x%2;
            x/=2;
            y+=yushu*p;
            p*=10;
            if(x<2)
            {
                y+=x*p;
                break;
            }
        }
        return y;
    }

    具体算法体现在函数体内,使用了一个while(1)的死循环,当结果产生后跳出循环。变量yushu是每一次循环内产生的余数,变量x每次循环都会被赋予新的值,这个新的值就是每一次循环内产生的商。当产生的商小于2时即产生了最后的结果(二进制数),然后跳出循环。

    例如:函数自变量若为7,用自变量7除以2,得到第一次循环产生的余数为1,第一次循环产生的商为3;用第一次循环产生的商3除以2,得到第二次循环产生的余数为1,第二次循环产生的商为1。

    变量y的存放也是有一定技巧的,由于每次产生的余数都小于2并且都是最后二进制数中需要按位展现出来的,因此每一次循环产生的余数都要合理地进行存放。第一次产生的余数放在个位,第二次产生的余数放在十位,第三次产生的余数放在百位......依次类推,直至某一次循环产生的商小于2,最后再把小于2的那个商放在最高位。变量p的作用就是控制位数,变量y的初始值定为0,变量p的初始值定为1,每次循环内变量p都自乘10,每次循环内都让变量y加上yushu*p,这样就实现了余数的按位存放。最后将小于2的那个商乘以p加到变量y中,得到最后的二进制数。

    例如:还是以自变量7为例,第一次循环后y的值为1,第二次循环内if语句之前y的值为11,if语句内y的值变为111,111即为7的二进制数。

    注意:变量p的自乘要放在变量y加上yushu*p之后!顺序不能颠倒!

    欢迎大家关注/订阅我的微信公众号Code Art Online,我会在我的公众号分享个人见闻,发现生活趣味;这里不仅有0和1,还有是诗和远方↓↓↓

    展开全文
  • 十进制转换成二进制 void conversion(){ InitStack(S); scanf(“%d”,n); while(N){ Push(S,n%2) n=n/2; } while(!StackEmpty(S)){ Pop(S,e); printf(“%d”,e); } }//conversion

    十进制转换成二进制

    void conversion(){

    InitStack(S);

    scanf(“%d”,n);

    while(N){

    Push(S,n%2)

    n=n/2;

    }

    while(!StackEmpty(S)){

    Pop(S,e);

    printf(“%d”,e);

    }

    }//conversion

    展开全文
  • 十进制转换成二进制源码
  • 十进制小数转换成二进制小数把十进制小数转换成二进制小数所采用的规则是“乘以2取整数”。方法是用2乘以十进制纯小数,将其结果的整数部分去掉;再用2乘余下的纯小数部分,再去掉其结果的整数部分;如此继续下去,...

    十进制小数转换成二进制小数

    把十进制小数转换成二进制小数所采用的规则是“乘以2取整数”。方法是用2乘以十进制纯小数,将其结果的整数部分去掉;再用2乘余下的纯小数部分,再去掉其结果的整数部分;如此继续下去,直到余下的纯小数为0或满足所要求的精度为止。最后将每次得到的整数部分(0或1)按先后顺序从左到右排列,即得到所对应的二进制小数。

    0.6875*2=1.375(取1)

    (1.375-1)*2=0.75(取0)

    0.75*2=1.5(取1)

    (1.5-1)*2=1(取1)

    1-1=0(到这就结束了)

     

    十进制转二进制: 
    用2辗转相除至结果为1 
    将余数和最后的1从下向上倒序写 就是结果 
    例如302 
    302/2 = 151 余0 
    151/2 = 75 余1 
    75/2 = 37 余1 
    37/2 = 18 余1 
    18/2 = 9 余0 
    9/2 = 4 余1 
    4/2 = 2 余0 
    2/2 = 1 余0 
    故二进制为100101110

    二进制转十进制 
    从最后一位开始算,依次列为第0、1、2...位 
    第n位的数(0或1)乘以2的n次方 
    得到的结果相加就是答案 
    例如:01101011.转十进制: 
    第0位:1乘2的0次方=1 
    1乘2的1次方=2 
    0乘2的2次方=0 
    1乘2的3次方=8 
    0乘2的4次方=0 
    1乘2的5次方=32 
    1乘2的6次方=64 
    0乘2的7次方=0 
    然后:1+2+0 
    +8+0+32+64+0=107. 
    二进制01101011=十进制107.

    展开全文
  • c语言 十进制转换成二进制 递归实现

    千次阅读 多人点赞 2019-01-05 17:09:13
    c语言 十进制转换成二进制 递归实现,函数代码很短,但是很难懂! int fun(int n) //十进制转换成二进制递归函数 { if(n) //递归停止的条件 { fun(n/2); //递归 printf("%d",n&amp;1); } } ...
  • 通过新建栈、用出栈和入栈将十进制转换成二进制
  • 用栈实现十进制转换成二进制(c语言)用栈实现十进制转换成二进制(c语言)用栈实现十进制转换成二进制(c语言)
  • 十进制转换成二进制和十六进制的方法 十进制数转换成二进制数-般分为两个步骤,即整数部分的转换和小数部分的转换。 (1 )整数部分的转换 *除2取余法:*这种方法是由于D10=N2 =dn-1x2n-1十dn-2x2n-2 +… d1x21十d0x20,...
  • 描述: 把二进制转换成十进制数。 输入: 输入是一个8位的二进制数。 输出: 输入的数转换十进制数输出。 输入样例: 10000001 输出样例: 129
  • 十进制转换成二进制的C语言程序 能够详细明了的表示出来 
  • C语言实现十进制转换成二八十六进制的转换,代码已经经过调试可以使用,放心下载!
  • 其方法与二进制转换成十进制差不多:按权相加法,即将八进制每位上的数乘以位权(如8,64,512….),然后将得出来的数再加在一起。 如将72.45转换为十进制。如图1所示 来看看十进制转八进制,有两种方法:直接法与...
  • 十进制转换为十六进制,也就是 采用 除k取余法 ,直接让10处以16,再对 数据如果小于10和大于10进行处理,代码如下: #include<iostream> #include<string> using namespace std; int main() { ...
  • 二进制、八进制和十六进制向十进制转换都非常容易,就是“按权相加”。所谓“权”,也即“位权”。 假设当前数字是N进制,那么: 对于整数部分,从右往左看,第i位的位权等于Ni-1 对于小数部分,恰好相反,要从左...
  • 十进制转换成二进制输出并且对其进行位操作
  • 超强进制转换工具 二进制 八进制 十进制 十六进制转换
  • 十进制转换成二进制(左边补零)

    千次阅读 2019-08-11 16:16:31
    十进制转换成二进制,左边补零
  • 进制转换器 对于十进制 十六进制 和二进制等进制进行相互转换 操作简单界面简介
  • //题目:八进制转换十进制 #include<stdio.h> #include<math.h> int main() { int i=0,n,tmp,sum=0; scanf("%d",&n); while(n) { tmp=n%10; n=n/10; sum+=tmp*pow(8,i); i++;...
  • 【JavaScript实现十进制转换成二进制】 什么是二进制 二进制是计算技术中广泛采用的一种数制。二进制数据是用0和1两个数码来表示的数。它的基数为2,进位规则是“逢二进一”,借位规则是...
  • 把十进制转换成其他进制的思想是:整除取倒余 '十进制数转换为二进制数' result = "" num = int(input("请输入一个十进制")) #验证结果 print(bin(num)) while(not(num == 0)): ret = num ...
  • 本文主要讲了二进制转换十进制方法,希望对你的学习有所帮助。
  • 目的:将一个十进制数x转化成二进制数并打印出来。 主要思路:在我的机器上,一个short变量占据两个字节,连续的十六位,先定义一个short型变量i,然后将其分为两个八位的部分(s,(s+1)),用指针操作这两部分,给...
  • 十进制转换二进制

    2011-11-23 11:02:07
    十进制转换二进制.一看就懂的十进制转换二进制.无需运算.直接转换
  • 一、绪论 十六进制(Hexadecimal):在数学中是一种逢16进1的进位制。一般用数字0到9和字母A到F(或...著名的英国科学史学家李约瑟教授曾对中国商代记数法予以很高的评价,"如果没有这种十进制,就几乎不可能出现我...
  • C语言中,整数都是以二进制的形式存放在内存中,所谓的...您可以编写函数其它进制数字转换成二进制数字,并保存在字符串中,然后在printf 函数中使用%s输出。 1、自定义的二进制输出函数dectobin 思路: 1)把十...
  • 进制间转换 进制转换 二进制十进制 八进制 十六进制转换
  • 2---MATLAB将十进制转换成二进制补码

    万次阅读 多人点赞 2017-09-25 10:37:18
    MATLAB中提供了一个将十进制转换二进制的函数dec2bin,但是该函数只能接受大于0的数,也就是不能直接将负数转换为二进制补码。那如何在MATLAB中生成补码呢?我们都知道负数的补码为其反码加1,然而MATLAB中的...
  • 可以进行十进制,十六进制,二进制互转的简单工具

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 252,692
精华内容 101,076
关键字:

怎样把十进制转换成二进制