精华内容
下载资源
问答
  • 二进制转换为十进制的流程图
    千次阅读
    2020-11-28 12:48:25

    首先,先温习一下 二进制转十进制吧!

    从最低位(最右)算起,位上的数字乘以本位的权重,权重就是2的第几位的位数减一次方。

    eg.第2位就是2的(2-1次)方,就是2;第8位就是2的(8-1)次方是128。把所有的值加起来。

    (for example:二进制1101,换算成十进制就是:12(1-1)+02(2-1)+12(3-1)+12(4-1)=1+0+4+8=13)

    整理了一下思路 整理出的流程图如下:

    于是 用python写出来了:x = int(input("请输入二进制数:")) //输入的二进制数字

    w = 0 //最终输出的十进制数

    i = 0 //循环次数

    while x>2 : //当x>2时进入此循环节

    y = x % 10 //x÷10取余数y

    w += y * pow(2,i) //w = w+y×2的i次方

    i = i+1 //i+1 表循环次数

    x = (int)(x/10) //x除10 舍去小数部分

    w += x * pow(2, i) //最后一步循环

    print(w) //输出结果

    总结:其实这玩意很简单,而且呢,在我们的各种各样的语言中,都有函数可以用了,这也就是为什么 百度 百度不到的原因吧~

    Powered By: Rabbit and Li an

    更多相关内容
  • 二进制、八进制、十六进制转换为十进制 二进制、八进制和十六进制向十进制转换都非常容易,就是“按权相加”。所谓“权”,也即“位权”。 假设当前数字是 N 进制,那么: 对于整数部分,从右往左看,第 i 位的...

    上节我们对二进制、八进制和十六进制进行了说明,本节重点讲解不同进制之间的转换,这在编程中经常会用到,尤其是C语言。

    将二进制、八进制、十六进制转换为十进制

    二进制、八进制和十六进制向十进制转换都非常容易,就是“按权相加”。所谓“权”,也即“位权”。

    假设当前数字是 N 进制,那么:

    • 对于整数部分,从右往左看,第 i 位的位权等于Ni-1
    • 对于小数部分,恰好相反,要从左往右看,第 j 位的位权为N-j。


    更加通俗的理解是,假设一个多位数(由多个数字组成的数)某位上的数字是 1,那么它所表示的数值大小就是该位的位权。

    1) 整数部分

    例如,将八进制数字 53627 转换成十进制:

    53627 = 5×84 + 3×83 + 6×82 + 2×81 + 7×80 = 22423(十进制)

    从右往左看,第1位的位权为 80=1,第2位的位权为 81=8,第3位的位权为 82=64,第4位的位权为 83=512,第5位的位权为 84=4096 …… 第n位的位权就为 8n-1。将各个位的数字乘以位权,然后再相加,就得到了十进制形式。

    注意,这里我们需要以十进制形式来表示位权。

    再如,将十六进制数字 9FA8C 转换成十进制:

    9FA8C = 9×164 + 15×163 + 10×162 + 8×161 + 12×160 = 653964(十进制)

    从右往左看,第1位的位权为 160=1,第2位的位权为 161=16,第3位的位权为 162=256,第4位的位权为 163=4096,第5位的位权为 164=65536 …… 第n位的位权就为 16n-1。将各个位的数字乘以位权,然后再相加,就得到了十进制形式。

    将二进制数字转换成十进制也是类似的道理:

    11010 = 1×24 + 1×23 + 0×22 + 1×21 + 0×20 = 26(十进制)

    从右往左看,第1位的位权为 20=1,第2位的位权为 21=2,第3位的位权为 22=4,第4位的位权为 23=8,第5位的位权为 24=16 …… 第n位的位权就为 2n-1。将各个位的数字乘以位权,然后再相加,就得到了十进制形式。

    2) 小数部分

    例如,将八进制数字 423.5176 转换成十进制:

    423.5176 = 4×82 + 2×81 + 3×80 + 5×8-1 + 1×8-2 + 7×8-3 + 6×8-4 = 275.65576171875(十进制)

    小数部分和整数部分相反,要从左往右看,第1位的位权为 8-1=1/8,第2位的位权为 8-2=1/64,第3位的位权为 8-3=1/512,第4位的位权为 8-4=1/4096 …… 第m位的位权就为 8-m。

    再如,将二进制数字 1010.1101 转换成十进制:

    1010.1101 = 1×23 + 0×22 + 1×21 + 0×20 + 1×2-1 + 1×2-2 + 0×2-3 + 1×2-4 = 10.8125(十进制)

    小数部分和整数部分相反,要从左往右看,第1位的位权为 2-1=1/2,第2位的位权为 2-2=1/4,第3位的位权为 2-3=1/8,第4位的位权为 2-4=1/16 …… 第m位的位权就为 2-m。

    更多转换成十进制的例子:

    • 二进制:1001 = 1×23 + 0×22 + 0×21 + 1×20 = 8 + 0 + 0 + 1 = 9(十进制)
    • 二进制:101.1001 = 1×22 + 0×21 + 1×20 + 1×2-1 + 0×2-2 + 0×2-3 + 1×2-4 = 4 + 0 + 1 + 0.5 + 0 + 0 + 0.0625 = 5.5625(十进制)
    • 八进制:302 = 3×82 + 0×81 + 2×80 = 192 + 0 + 2 = 194(十进制)
    • 八进制:302.46 = 3×82 + 0×81 + 2×80 + 4×8-1 + 6×8-2 = 192 + 0 + 2 + 0.5 + 0.09375= 194.59375(十进制)
    • 十六进制:EA7 = 14×162 + 10×161 + 7×160 = 3751(十进制)

    将十进制转换为二进制、八进制、十六进制

    将十进制转换为其它进制时比较复杂,整数部分和小数部分的算法不一样,下面我们分别讲解。

    1) 整数部分

    十进制整数转换为 N 进制整数采用“除 N 取余,逆序排列”法。具体做法是:

    • 将 N 作为除数,用十进制整数除以 N,可以得到一个商和余数;
    • 保留余数,用商继续除以 N,又得到一个新的商和余数;
    • 仍然保留余数,用商继续除以 N,还会得到一个新的商和余数;
    • ……
    • 如此反复进行,每次都保留余数,用商接着除以 N,直到商为 0 时为止。


    把先得到的余数作为 N 进制数的低位数字,后得到的余数作为 N 进制数的高位数字,依次排列起来,就得到了 N 进制数字。

    下图演示了将十进制数字 36926 转换成八进制的过程:


    从图中得知,十进制数字 36926 转换成八进制的结果为 110076。

    下图演示了将十进制数字 42 转换成二进制的过程:


    从图中得知,十进制数字 42 转换成二进制的结果为 101010。

    2) 小数部分

    十进制小数转换成 N 进制小数采用“乘 N 取整,顺序排列”法。具体做法是:

    • 用 N 乘以十进制小数,可以得到一个积,这个积包含了整数部分和小数部分;
    • 将积的整数部分取出,再用 N 乘以余下的小数部分,又得到一个新的积;
    • 再将积的整数部分取出,继续用 N 乘以余下的小数部分;
    • ……
    • 如此反复进行,每次都取出整数部分,用 N 接着乘以小数部分,直到积中的小数部分为 0,或者达到所要求的精度为止。


    把取出的整数部分按顺序排列起来,先取出的整数作为 N 进制小数的高位数字,后取出的整数作为低位数字,这样就得到了 N 进制小数。

    下图演示了将十进制小数 0.930908203125 转换成八进制小数的过程:


    从图中得知,十进制小数 0.930908203125 转换成八进制小数的结果为 0.7345。

    下图演示了将十进制小数 0.6875 转换成二进制小数的过程:


    从图中得知,十进制小数 0.6875 转换成二进制小数的结果为 0.1011。

    如果一个数字既包含了整数部分又包含了小数部分,那么将整数部分和小数部分开,分别按照上面的方法完成转换,然后再合并在一起即可。例如:

    • 十进制数字 36926.930908203125 转换成八进制的结果为 110076.7345;
    • 十进制数字 42.6875 转换成二进制的结果为 101010.1011。


    下表列出了前 17 个十进制整数与二进制、八进制、十六进制的对应关系:

    十进制012345678910111213141516
    二进制0110111001011101111000100110101011110011011110111110000
    八进制01234567101112131415161720
    十六进制0123456789ABCDEF10


    注意,十进制小数转换成其他进制小数时,结果有可能是一个无限位的小数。请看下面的例子:

    • 十进制 0.51 对应的二进制为 0.100000101000111101011100001010001111010111...,是一个循环小数;
    • 十进制 0.72 对应的二进制为 0.1011100001010001111010111000010100011110...,是一个循环小数;
    • 十进制 0.625 对应的二进制为 0.101,是一个有限小数。

    二进制和八进制、十六进制的转换

    其实,任何进制之间的转换都可以使用上面讲到的方法,只不过有时比较麻烦,所以一般针对不同的进制采取不同的方法。将二进制转换为八进制和十六进制时就有非常简洁的方法,反之亦然。

    1) 二进制整数和八进制整数之间的转换

    二进制整数转换为八进制整数时,每三位二进制数字转换为一位八进制数字,运算的顺序是从低位向高位依次进行,高位不足三位用零补齐。下图演示了如何将二进制整数 1110111100 转换为八进制:


    从图中可以看出,二进制整数 1110111100 转换为八进制的结果为 1674。

    八进制整数转换为二进制整数时,思路是相反的,每一位八进制数字转换为三位二进制数字,运算的顺序也是从低位向高位依次进行。下图演示了如何将八进制整数 2743 转换为二进制:


    从图中可以看出,八进制整数 2743 转换为二进制的结果为 10111100011。

    2) 二进制整数和十六进制整数之间的转换

    二进制整数转换为十六进制整数时,每四位二进制数字转换为一位十六进制数字,运算的顺序是从低位向高位依次进行,高位不足四位用零补齐。下图演示了如何将二进制整数 10 1101 0101 1100 转换为十六进制:


    从图中可以看出,二进制整数 10 1101 0101 1100 转换为十六进制的结果为 2D5C。

    十六进制整数转换为二进制整数时,思路是相反的,每一位十六进制数字转换为四位二进制数字,运算的顺序也是从低位向高位依次进行。下图演示了如何将十六进制整数 A5D6 转换为二进制:


    从图中可以看出,十六进制整数 A5D6 转换为二进制的结果为 1010 0101 1101 0110。

    在C语言编程中,二进制、八进制、十六进制之间几乎不会涉及小数的转换,所以这里我们只讲整数的转换,大家学以致用足以。另外,八进制和十六进制之间也极少直接转换,这里我们也不再讲解了。

    总结

    本节前面两部分讲到的转换方法是通用的,任何进制之间的转换都可以采用,只是有时比较麻烦而已。二进制和八进制、十六进制之间的转换有非常简洁的方法,所以没有采用前面的方法。

    展开全文
  • 任意二进制转换为十进制

    千次阅读 2021-05-21 02:40:38
    任意位数二进制转换十进制数c语言程序写作而成程序简明易懂附加有程序运行结果任意二进制十进制数程序代码:#include#include#includelong float change(char str[],int n){int xsd,i;for(i=0;i{if(str[i]=='....

    任意位数二进制数转换成十进制数

    c语言程序写作而成

    程序简明易懂

    附加有程序运行结果

    任意二进制转十进制数

    程序代码:

    #include

    #include

    #include

    long float change(char str[],int n)

    {

    int xsd,i;

    for(i=0;i

    {

    if(str[i]=='.')

    {

    xsd=i+1;//xsd为小数点位置

    break;

    }

    }

    if(i==n)

    xsd=n+1;

    long float sum,zs=0,xs=0;

    for(int j=xsd-2,q=0;j>=0;q++,j--)

    {

    if(str[j]=='1')

    zs+=powf(2,q);

    }

    if(xsd!=n+1)

    {

    for(int k=xsd;k

    {

    int m=(xsd-k)-1;

    if(str[k]=='1')

    xs+=powf(2,m);

    }

    printf("二进制小数点在第 xsd=%d 位上!\n",xsd); printf("十进制小数部分值为:xs=%lf\n",xs); }

    printf("十进制整数部分值为:zs=%lf\n",zs);

    sum=zs+xs;

    return sum;

    }

    void main()

    {

    while(1)

    {

    char str[30];

    展开全文
  • 二进制 十进制 八进制

    目录

    十进制数转二进制

    二进制转化十进制 

    二进制转八进制

    八进制数转二进制数 

    八进制数转化为十进制数

    十进制数转化为八进制数 

    十进制数转二进制

    1.正整数转成二进制:除二取余,然后倒序排列,高位补零。

    42转换成二进制以后就是。00101010。

     2.负整数转换成二进制:将对应的正整数转换成二进制后,对二进制取反,然后对结果再加一。以42为例,负整数就是-42,如图所示:

    最后即为:11010110。

    3.小数转换为二进制:对小数点以后的数乘以2,取结果的整数部分(不是1就是0),然后再用小数部分再乘以2,再取结果的整数部分……以此类推,直到小数部分为0或者位数已经够了就OK了。然后把取的整数部分按先后次序排列,就构成了二进制小数部分的序列。0.125为例,如图:

     

    如果小数的整数部分有大于0的整数时该如何转换呢?小数转换成二进制,然后加在一起,如图 :

    二进制转化十进制 

    1. 整数二进制转换为十进制:先将二进制数补齐位数,首位如果是0就代表是正整数,如果首位是1则代表是负整数。先看首位是0的正整数,补齐位数以后,将二进制中的位数分别将下边对应的值相乘,然后相加得到的就为十进制,比如1010转换为十进制,如图:

    2.若二进制补足位数后首位为1时,就需要先取反再换算:例如,11101011,首位为1,那么就先取反 ,取反值00010100 对应的十进制为20,所以原数对应的十进制为-20,方法:

    3.将有小数的二进制转换为十进制:例如0.1101转换为十进制,将二进制中的四位数分别于下边对应的值相乘后相加得到的值即为换算后的十进制。 

    二进制转八进制

    二进制数与八进制数之间的对应关系 如图:

    取三合一法,即从二进制的小数点为分界点,向左(或向右)每三位取成一位,如图 :

    如果在向左(或向右)取三位时,取到最高位(最低位)如果无法凑足三位,就可以在小数点的最左边(或最右边)补0,进行换算 :

    八进制数转二进制数 

    把一个八进制数分成三个二进制数,用三位二进制按权相加,最后得到二进制

    八进制数转化为十进制数

    将八进制每位上的数乘以位权(如8,64,512….),然后将得出来的数再加在一起。如将72.45转换为十进制。如图:

    十进制数转化为八进制数 

    整数部分,除8取余法

    十进制数小数部分转八进制,乘八取整法,小数部分乘以8,然后取整数部分,再让剩下的小数部分再乘以8,再取整数部分,……以此类推,一直乘到小数部分为零为止。遵循“3舍4入”

     

    展开全文
  • 十进制转化为二进制代码及流程图

    万次阅读 2020-10-23 14:51:20
    十进制二进制代码及流程图 代码块 import java.util.Scanner; public class Demos{ public static void main(String[] args){ Scanner input=new Scanner(System.in); int n = input.nextInt(); if (n =...
  • 整数部分法则:使用短除法,连续除2取余数,直到商为0反序排列 例1:将十进制整数156转换二进制数。 最后的结果就红色箭头所指的由高位到低位:10011100 所以156转为为二进制的...例2:将十进制30转换为二进制
  • 一、十进制如何转换为二进制(一) 我们先来讲十进制二进制: 我们大家在中学的时候学过“短除法”吧,这里十进制二进制最简单的就是用这种方法来计算,我们们先来举个例子比如:3.因为二进制不是1就是0,那么我们...
  • 题意分析:2^35表示这个二进制数最长有35位... 所以不管用什么整数型都会爆,这时候只能用字符串读入,并将字符串上的每一位转换成int型。 具体方法:int x=a[i]-'0' //a[i]字符串的第[i]位 输入一个样例出一...
  • 1、背景(Contexts)之前使用SQL把十进制的整数转换三十六进制,SQL代码请参考:SQL Server 进制转换函数,其实它是基于、八、十、十六进制转换的计算公式的,进制之间的转换是很基础的知识,但是我发现网络上没有...
  • 目录 在学习四种进制转换之前先...十进制是Decimal,简写D 都是以0-9这九个数字组成。 二进制: 由0和1两个数字组成。 二进制是Binary,简写B 八进制: 由0-7数字组成,为了区分与其他进制的数字区别...
  • 二进制十进制转换史上最牛逼算法!!

    万次阅读 多人点赞 2020-07-27 11:34:05
    二进制由0和1组成,那么怎么快速的对一个十进制转换二进制数呢? 最古老的方法大家还记得怎么转换吗?比如35这个十进制数? 将这个数除以2,等于17余1,然后将17再除以2,等于8余1…直到不能再被2整除,然后将...
  • 进制转换为二进制 一、正整数的十进制转换二进制 将一个十进制数除以二,得到的商再除以二,依此类推直到商等于一或零时为止,倒取除得的余数,即换算为二进制数的结果。计算机内部表示数的字节单位是定长的,如...
  • 十进制转换二进制 (栈)

    千次阅读 2020-11-27 20:18:34
    十进制转换二进制 (栈) 首先,转化的思路是 辗转取余法。比如说n = 5,先取模(5%2)获得1,然后取余并将其赋值给本身,得到n = 2;再取模得到0,取余之后n = 1;对1取模(1%2)得到1,取余得到0。将取模得到的...
  • 背景(Contexts)之前使用SQL把十进制的整数转换三十六进制,SQL代码请参考:SQL Server 进制转换函数,其实它是基于、八、十、十六进制转换的计算公式的,进制之间的转换是很基础的知识,但是我发现网络上没有一...
  • 将十进制转换为其它进制时比较复杂,整数部分和小数部分的算法不一样,下面我们分别讲解。 整数部分 十进制整数转换 N 进制整数采用“除 N 取余,逆序排列”法。具体做法是: 将 N 作为除数,用十进制整数除以 N...
  • 相关知识  字符串中字符的编号和二进制的数位是不一样的,但两者之间有对应关系,找... 在 Begin-End 区间实现BinToDec(b)函数,其功能是将二进制数b转换为十进制,说明如下:  1)b是一个用字符串表示的二进..
  • 二进制转换为十进制不分整数和小数从最后一位算起,每一位上的数乘以2的几次方,次数由这个数字所在的位置决定,从零位开始,然后相加。十进制转二进制:十进制数转换二进制数时,由于整数和小数的转换方法不同,...
  • 这里写自定义目录标题如何插入一段漂亮的代码片生成一个适合你的列表创建一个表格设定内容居中、居左、居右SmartyPants创建...# 二进制与十进制转换 number_10 = int(input('请输入一个十进制数字:')) number_100 =...
  • 浅谈BCD码同二进制转换

    千次阅读 2021-12-06 10:33:40
    一、BCD码 1、BCD码概述 2、BCD分类 1、有权码 2、无权码 3、BCD运算问题 二、二进制BCD码 1、原理实现 2、模块划分 3、仿真调试 4、仿真验证 三、BCD码转二进制 1、原理实现 2、模块划分 3、仿真验证
  • 图文详解进制转换

    2021-09-18 15:07:50
    十进制是逢十进一,十六进制是逢十六进一,二进制就是逢二进一,以此类推,x进制就是逢x进位。 位权 位权就是进制的(位数-1)次冥,第n位数字的表示值等于数字乘以进制的n-1次方。 比如10进制数1462的第4位1的权是1...
  • 把一个二进制数转化为十进制数。 输入格式 第一行一个正整数 n\ (1\le n\le 30)n (1≤n≤30),表示二进制数的长度。 第二行一个二进制数。 输出格式 输出一个整数,表示对应的十进制数。 输入 5 10101 输出 21 思路 ...
  • 我们先说十进制吧,就是我们平常所说的0,1,2,3,4,5,6,7,8,9,我们计算加法的时候都是逢十进一 就是我们计算的时候,一到十就立马清零了并加到下一位。所以范围是0~9. 二进制也是如此,就是逢二进一,只有0,1这两个...
  • #include<bits/stdc++.h> using namespace std; long long arr[10000]; int main(){ int n,i=0,j; cin>>n; while(n>0){ j=n%2; arr[i]=j; n/=2; i++; } for(int j=i-1;j>...arr[...
  • 十进制二进制(多种算法)
  • 前言 如果你现在还是不能够很熟练的转换... 对于无符号数(正数)来说,没有什么独特的,但是如果需要将进制数转换为十进制,优先将十六进制转换为十进制,这样计算比较简单。 对于有符号数(负数)来说: (1)...
  • 这里写自定义目录标题欢迎使用Markdown编辑器新的改变功能快捷键合理的创建标题,有助于目录的生成如何改变文本的样式插入链接与图片如何插入一段漂亮的...,丰富你的文章UML 图表FLowchart流程图导出与导入导出导入...
  • 文章目录概念说明工具使用进位计数制的概念二进制十进制八进制 转 十进制十六进制转十进制十进制 转(二、八、十六进制)十进制二进制十进制 转 八进制十进制 转 十六进制二进制 转 (八、十六进制)二进制 ...
  • 十进制二进制的互相转换

    千次阅读 2019-09-28 23:05:49
    这里写自定义目录标题欢迎使用Markdown编辑器新的改变功能快捷键合理的创建标题,有助于目录的生成如何改变文本的样式插入链接与图片如何插入一段漂亮的...,丰富你的文章UML 图表FLowchart流程图导出与导入导出导入...
  • 今天一场技术笔试一道编程题难住了我,算出一个十进制数的二进制补码和对应的16进制,由于时间紧张,加上紧张,做的极差,因此mark以下

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 36,097
精华内容 14,438
热门标签
关键字:

二进制转换为十进制的流程图