二进制转十进制 订阅
二进制转十进制:是指用一定的数学手段把二进制的数字转化为十进制的数字,广泛运用于编程等领域。 展开全文
二进制转十进制:是指用一定的数学手段把二进制的数字转化为十进制的数字,广泛运用于编程等领域。
信息
适用领域范围
电子、编程、编码、数学
应用学科
数学
中文名
二进制转十进制
二进制转十进制公式
先了解熟悉的十进制转二进制要用这种方法首先得会十进制转二级制的除以2取余的方法。  十进制转二进制  将余数和最后的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 余01 2=0 余1   故二进制为100101110
收起全文
精华内容
下载资源
问答
  • 二进制转十进制
    千次阅读
    2021-07-30 02:46:56

    二进制是计算技术中广泛采用的一种数制。二进制数据是用0和1两个数码来表示的数。它的基数为2,进位规则是“逢二进一”,借位规则是“借一当二”。二进制数据也是采用位置计数法,其位权是以2为底的幂。

    二进制转换十进制公式:

    abcd.efg(2)=d*2^0+c*2^1+b*2^2+a*2^3+e*2^-1+f*2^-2+g*2^-3(10)

    例如二进制数据110.11,其权的大小顺序为2^2、2^1、2^0、2^-1、2^-2。对于有n位整数,m位小数的二进制数据用加权系数展开式表示,可写为:

    (a(n-1)a(n-2)…a(-m))2=a(n-1)×2^(n-1)+a(n-2)×2^(n-2)+……+a(1)×2^1+a(0)×2^0+a(-1)×2^(-1)+a(-2)×2^(-2)+……+a(-m)×2^(-m)

    二进制数据一般可写为:(a(n-1)a(n-2)…a(1)a(0).a(-1)a(-2)…a(-m))2。

    注意:

    1、式中aj表示第j位的系数,它为0和1中的某一个数。

    2、a(n-1)中的(n-1)为下标,输入法无法打出所以用括号括住,避免混淆。

    3、2^2表示2的平方,以此类推。

    二进制转为十进制计算方法举例

    二进制转为十进制的时候,先把二进制从高位(最左边的“1”)开始按从上到下的顺序写出 ,第一位就是最后的商 “2÷2 = 1 余0 “,余数肯定是加零。其他位数如果有”1“(原来的余数),就先乘以”2“再加”1“。

    下面就是从第一位开始乘以2加余数的方法算回去

    例如 100101110

    1…………0x2+1=1…………余数为1

    0…………1x2+0=2………… 余数为0

    0 …………2x2+0=4 ………… 余数为0

    1 …………4x2+1=9……………… 余数为1

    0…………9x2+0=18 ……………… 余数为0

    1 …………18x2+1=37 …………余数为1

    1…………… 37x2+1=75…………余数为1

    1………………75x2+1=151………… 余数为1

    0………………151x2+0=302 ………… 余0

    所以得到十进制数302

    另:1*2^8+0*2^7+0*2^6+1*2^5+0*2^4+1*2^3+1*2^2+1*2^1+0*2^0=302

    更多相关内容
  • 解决labview字符串转换功能不足,将二进制字符串转变为十进制字符串。
  • php二进制转十进制,十进制转二进制算法 文件定义了两个转换函数,二进制转十进制函数,十进制转二进制函数,使用于一些特定需求的人,如有问题请私信我。
  • c++二进制转十进制+Codeblocks编程
  • MATLAB中负数8位二进制与10进制之间的转换
  • 二进制转十进制

    2018-12-07 19:15:09
    主要讲述IP地址,子网掩码二进制转十进制,十进制转二进制
  • 二进制转换十进制

    2014-09-18 18:54:40
    二进制字符串转换十进制字符串,大数的运算,进制转换
  • 八位二进制转三位十进制电路multisim源文件,十进制数字用数码管显示,multisim13及以上版本的软件可以正常打开仿真。
  • SIMULINK 中的十进制转二进制
  • 二进制如何转十进制?二进制转换十进制公式二进制转换为十进制的简便方法。原来方法:从最后一位开始算,依次列为第0、1、2...位第n位的数(0或1)乘以2的n次方得到的结果相加就是答案例如: 01101011转十进制:第0位:1乘...

    二进制如何转十进制?二进制转换十进制公式

    二进制转换为十进制的简便方法。

    原来方法:

    从最后一位开始算,依次列为第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.

    另类解法:

    看到另类两个字,可能有人会有疑惑,大家可千万别认为这是种取巧,从而怀疑这种技巧的科学性。技巧,也是根据理论知识科学地得出的。

    在讲解这种“另类”方法之前,同学们先来看这样一个已知知识:数学中的进制即十进制数中,在一个数的整数部分的最右侧加0,每加一个0,这个数是前一个数的10倍,如25、250、2500...等等;在小数部分的最左侧每加一个0,这个数是前一个数的十分之一,如0.25、0.025、0.0025...等等

    设想:二进制数中,在1的右侧(整数部分)或左侧(小数部分)每增加一个0,会是前一个数的2倍或二分之一吗?

    想想看:为什么只针对数码1来进行?

    推理过程:分别把整数部分和小数部分转换成十进制来进行比较,按“乘权求和”的规则进行转换

    整数部分:(1)2=(1)10;(10)2=(2)10;(100)2=(4)10;(1000)2=(8)10;(10000)2=(16)10..

    小数部分:(0.1)2=(0.5)10;(0.01)2=(0.25)10;(0.001)2=(0.125)10;(0.0001)2=(0.0625)10;0.00001)2=(0.03125)...

    这些转换过程,令你忆起了数制概念中关于位和值的定义吗?同样的数在不同的位置所代表的值是不同的,称为位值(或权值)。现在明白它的含义了吗?这条,是下面转换的最直接的依据。

    排列:1、2、4、8、16......     0.5、0.25、0.125、0.0625、0.03125......

    结论:整数部分2倍;小数部分:二分之一即0.5倍

    以上就是这种“另类”解法的理论依据,它另类吗?好,我们现在就来看看这种另类的方法到底是怎样实现数制之间转换的。同样以二进制数转换为十进制数中的例子来看

    (1101.011)2=(      )10

    第一步:画出一串表示位的标记,如“×”,标记的多少根据题目中出现数字数目的多少而定,比方这个例子,整数部分有4位,小数部分三位,共7位.千万记得给小数点留个位置哦!

    第二步:在相应的位上写上它所对应的值,值的大小整数部分从右到左依次为1、2、4、8、16...即后一个数是前一个数的2倍;小数部分从左到右依次为0.5、0.25、0.125、0.625...即后一个数是前一个数的0.5倍。

    第三步:将二进制数按位写在标记的下文

    第四步:将位值为“1”的标记上方的数字相加,即为二进制数所对应的十进制数

    8 + 4  + 1 + 0.25 + 0.125 =13.375

    即:(1101.011)2 = (13.375)10

    在实际的换算过程中,同学们只要直接写出第三步,然后用第四步来得出相应结果就可以了。

    展开全文
  • 二进制转换十进制 算法解析

    千次阅读 2021-03-06 16:26:56
    java里面是有进制间互换现成的方法的:public class十进制与各进制的相互转换 {public static voidmain(String[] args){//java已经实现的机制:十进制转换为二进制int decimal = 10;System.out.println("十进制数:"+...

    java里面是有进制间互换现成的方法的:

    public class十进制与各进制的相互转换 {public static voidmain(String[] args){//java已经实现的机制:十进制转换为二进制

    int decimal = 10;

    System.out.println("十进制数:"+decimal+",转换为二进制:"+Integer.toBinaryString(decimal));

    System.out.println("十进制数:"+decimal+",转换为八进制:"+Integer.toOctalString(decimal));

    System.out.println("十进制数:"+decimal+",转换为十六进制:"+Integer.toHexString(decimal));

    System.out.println("二进制数:"+"1010" +",转换为十进制:"+Integer.valueOf("1010", 2));

    System.out.println("八进制数:"+"12" +",转换为十进制:"+Integer.valueOf("12", 8));

    System.out.println("十六进制数:"+"a" +",转换为十进制:"+Integer.valueOf("a", 16));

    }

    }

    结果:

    十进制数:10,转换为二进制:1010十进制数:10,转换为八进制:12十进制数:10,转换为十六进制:a

    二进制数:1010,转换为十进制:10八进制数:12,转换为十进制:10十六进制数:a,转换为十进制:10

    但如果不取Integer的内含方法,我们要怎么实现进制之间的转换呢?

    下面针对二进制-->十进制实现其算法过程:

    一般思维:

    当问到二进制数转为十进制数,大多数人脑里第一反应的应该是这样一个逻辑过程:

    二进制数:1010

    十进制数:1*2^3 + 0*2^2 + 1*2^1 + 0*2^0 =  8 + 0 + 2 +0 = 10

    按这个思路,java代码可以这样实现:

    方法一:

    public intbinaryToDecimal(String inMsg){int x = 0;int mul = 1;for(int i = inMsg.length()-1;i>0;i--){

    x+= mul*(inMsg.charAt(i)=='1'?1:0);

    mul*=2;

    }

    System.out.println(mul);returnmul;

    }

    好奇在网上也找了下其他实现方法:

    方法二:

    String radix = "1010";

    public intmethod(String radix){int x = 0;for(charc:radix.toCharArray())

    x= x*2 + (c=='1'?1:0);

    System.out.println(x);returnx;

    }

    对比以上两个方法,方法一和我们平常的思维是一致的,但是方法二就不大好理解了,略作思考后,发现可以这样理解:

    1、从for(char c:radix.toCharArray())这行代码可以看出,需要将待求解的二进制数转换为char数组;显然,当待求解二进制数为1010时,char数组即为:char[1,0,1,0],数组中有4个元素,那么也就是说for循环要循环运行4次。

    2、显而易见,for循环里面的算式组成部分的(c=='1'?1:0)目的就是为了拿到当前循环时对应二进制数组下标的值。

    如:第一次循环,拿到二进制数组下标为0的值:1

    第二次循环,拿到二进制数组下标为1的值:0

    第三次循环,拿到二进制数组下标为2的值:1

    第四次循环,拿到二进制数组下标为3的值:0

    3、算法:x = x*2 + (c=='1'?1:0) 的原理解析:前半部分x*2,是为了实现二进制数组元素的幂次相乘(之前的int x = 0其实实现了char[]数组的size()-1的作用),后半部分获取了下次进行幂运算的char数组的元素值。

    解析:

    第一次循环:看方法二的第三行代码:int x = 0;x初始值为0,就导致了for循环第一次循环时,运算为:0*2+1  ,即只会得到算式(c=='1'?1:0)的值,即二进制数组第一个元素的值:1 ;这时循环已经进行了1次,还剩3次,所以这里的1会在后面的3次循环里分别乘以2 , 即1*2*2*2;

    第二次循环:算式为: (0*2 + 1)*2 + 0  == 0*2*2 + 1*2 + 0  ,第一部分0*2*2不用管,因为这个是int x=0起作用用的, 第二部分是第一次循环时得到1的第一次幂运算1*2, 第三部分就是二进制数组下标为1的元素:0,也是下一次循环会进行幂运算的数。   这时我们发现总共的4次循环已经进行了2次,剩下2次,所以这里的下次幂运算值:0会在后面的2次循环里分别乘以2,即0*2*2;

    第三次循环:算式为: ((0*2 + 1)*2 + 0)*2 +1  == 0*2*2*2 + 1*2*2 + 0*2 +1  ,第一部分0*2*2*2不用管,第二部分是第一次循环时得到1的第二次幂运算1*2*2, 第三部分是第二次循环时得到0的第一次幂运算0*2,第四部分就是二进制数组下标为2的元素:1,也是下一次循环会进行幂运算的数。   这时我们发现总共的4次循环已经进行了3次,剩下1次,所以这里的下次幂运算值:1会在后面的1次循环里乘以2,即1*2;

    第四次循环:算式为: (((0*2 + 1)*2 + 0)*2 +1 )*2 +1 == 0*2*2*2*2 + 1*2*2*2 + 0*2*2 +1*2 + 0  ,第一部分0*2*2*2*2不用管,第二部分是第一次循环时得到1的第三次幂运算1*2*2*2, 第三部分是第二次循环时得到0的第二次幂运算0*2*2,第四部分是第三次循环时得到1的第一次幂运算1*2,第五部分就是二进制数组下标为3的元素:0,也是下一次循环会进行幂运算的数。   这时我们发现总共的4次循环已经进行了4次,剩下0次,

    所以本次运算就是整个算法的结果: 0*2*2*2*2   +   1*2*2*2   +   0*2*2   +   1*2   +   0  =  0 + 8 + 0 + 2 + 0  =  10 ,这样看是不是觉得很熟悉!没错,其实原理还是和方法一一样样的。

    啰嗦了点,希望能帮到你理解!:)

    展开全文
  • 传入: 二进制字符串 返回: 十进制数值
  • JAVA实现二进制转十进制

    千次阅读 2022-06-04 19:02:27
    public class DecToBin {//二进制转十进制 public static int dectobin(String str){ int cnt=0; int sum=0; str=new StringBuilder(str).reverse().toString();//反转字符串 for(int i=0;i 实现:

    代码:

    import java.util.*;
    public class DecToBin {//二进制转十进制
        public static int dectobin(String str){
            int cnt=0;
            int sum=0;
            str=new StringBuilder(str).reverse().toString();//反转字符串
            for(int i=0;i<str.length();i++){
                cnt++;
                if (str.charAt(i)=='1'){
                    int mul=1;
                    for (int j=1;j<cnt;j++){
                        mul*=2;
                    }
                    sum+=mul;
                }
                else continue;
            }
            return sum;
        }
        public static void main(String[] args) {
            Scanner sc=new Scanner(System.in);
            String str=sc.nextLine();
            while(true) {
                boolean flag=true;//用于输入有误后也能判定继续输入
                for (int i=0;i<str.length();i++){
                    if ((str.charAt(i)!='1')&&(str.charAt(i)!='0')){
                        System.out.println("输入有误,请重输!");
                        flag=false;
                        break;
                    }
                }
                if(flag==true) {//注意别写成了=,要用==
                    System.out.println(dectobin(str));
                    str = sc.nextLine();
                }
                else str=sc.nextLine();
            }
        }
    }
    

     实现:

     

    展开全文
  • python二进制转十进制

    千次阅读 2021-12-15 14:23:52
    十进制转换为8位二进制 :format(int(26),'08b') 十进制转换为四位二进制 :format(int(4),'04b') 二进制转换为十进制 :int("00011000",2)
  • 易语言六十二进制十进制源码
  • //十进制转二进制 Console.WriteLine(Convert.ToString(69, 2)); //十进制转八进制 Console.WriteLine(Convert.ToString(69, 8)); //十进制转十六进制 Console.WriteLine(Convert.ToString(69, 16)); //二进制...
  • 怎么用python二进制转换十进制

    千次阅读 2020-11-26 03:00:07
    绒绒小梧桐2020-02-24 10:13:41二进制转十进制,十进制转二进制的算法十进制转二进制:用2辗转相除至结果为1将余数和最后的1从下向上倒序写 就是结果例如302302/2 = 151 余0151/2 = 75 余175/2 = 37 余137/2 = 18 余...
  • C语言:二进制转换十进制

    千次阅读 2021-11-16 19:07:33
    题目描述:将二进制数转化为十进制数; 输入格式: 第一行一个正整数n (1≤n≤30),表示二进制数的长度。 第二行一个二进制数。 输出格式: 输出一个整数,表示对应的十进制数。 思考:对于进制之间的互相转化...
  • 首先,先温习一下 二进制转十进制吧!从最低位(最右)算起,位上的数字乘以本位的权重,权重就是2的第几位的位数减一次方。eg.第2位就是2的(2-1次)方,就是2;第8位就是2的(8-1)次方是128。把所有的值加起来。...
  • 二进制转十进制 8421运算法

    千次阅读 2021-12-10 12:33:55
    十进制 二进制 1 0001 2 0010 4 0100 8 1000 16 0001 0000 32 0010 0000 64 0100 0000 128 1000 0000 256 0001 0000 0000 我发现除 1之外十进制数值都是2的次方 2^1 = 2 2^2 = 4 2^3 = 8 16 ...
  • java二进制转十进制

    千次阅读 2021-07-19 21:12:28
    package MyDemo; import java.util.Scanner; public class BinaryToDecimal { public static void main(String[] args)... System.out.println("请输入一个二进制数的字符串:"); String binarystr = scan.next();
  • 主要介绍了Python实现的十进制小数与二进制小数相互转换功能,结合具体实例形式详细分析了二进制十进制相互转换的原理及Python相关实现技巧,需要的朋友可以参考下
  • C语言————二进制转十进制

    千次阅读 2021-12-28 16:28:47
    <思路> 把输入的二进制数按照从低到高的次序依次输出,且每一次都乘以相应的位权 //(所谓位权,数中每一...举个例子:【将二进制数1101转化成十进制数】 1101=1*2的零次幂+0*2的一次幂+1*2的二次幂+1*2的三次
  • 二进制转十进制(c语言)

    千次阅读 2021-11-17 22:38:40
    把一个二进制数转化为十进制数。 输入格式 第一行一个正整数 n (1≤n≤30) 表示二进制数的长度。 第二行一个二进制数。 输出格式 输出一个整数,表示对应的十进制数。 例:输入 5 10101 输出: 21 整体思路...
  • c语言中二进制转十进制详解

    千次阅读 2021-12-18 15:27:18
    数字字符‘1’的ASCII代码是十进制数49,二进制形式是0110001。其中我们需要知道的是‘1’和1是不同的概念。字符‘1’只是表示一个形状为‘1’的符号,在需要时按原样输出,在内存中以ASCII码形式存储,占一个字节...
  • //二进制转为十进制方法 if(set == 0) //输入0为结束条件 break; else //当异常发生会跳过异常语句后面的语句 System.out.println("the bin for num is " + set); //写在try里是因为发生错误就不执行 } catch...
  • 二进制转十进制计算方法

    万次阅读 2018-11-22 12:28:44
    口诀: 1 2 4 8 16 32 64 128 256 512 1024 2048 4096 8192 16384 32768 65536 131072 262144 524288 ........ 11111111 (2) 从右往左数平方 0开始 =1x20+1x21+1x22+1x23+1x24+1x...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 507,757
精华内容 203,102
关键字:

二进制转十进制