精华内容
下载资源
问答
  •  首先介绍 二进制转换十进制二进制数第0位的权值是2的0次方,第1位的权值是2的1次方……所以,设有一个二进制数:101100100,转换为10进制为:356用横式计算(从右往左算)0×20+0×21+1×22+0×23+0×24+1×25+1×26...

    最近在学习计算机基础 研究到进制转换,颇有心得,在此做个解释和记录;

     首先介绍       二进制转换十进制

    二进制数第0位的权值是2的0次方,第1位的权值是2的1次方……
    所以,设有一个二进制数:101100100,转换为10进制为:356
    用横式计算(从右往左算)
    0×20+0×21+1×22+0×23+0×24+1×25+1×26+0×27+1×28=356
    0乘以多少都是0,所以我们也可以直接跳过值为0的位:
    1×22+1×25+1×26+1×28=356
    4+32+64+256 =356

    然后介绍       十进制转换二进制

         十进制转换2进制的方法可以总结的说 就是除2取余 除二取余······

        例如

          画图来说:


    展开全文
  • 十进制整数转换二进制采用“除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位二进制所对应的十进制数值,对进制转换以及类似题目的理解非常有用:

    1 1 1 1 1 1 1 1 B
    128 64 32 16 8 4 2 1 D

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


    例题: 135D = ______ B

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

    展开全文
  • 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 ,这样看是不是觉得很熟悉!没错,其实原理还是和方法一一样样的。

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

    展开全文
  • c++ 二进制转换十进制 double power(double x,int n) { double v=1; while(n--) { v=v*x; } return v; }
  • 用int(“101',2)可以把字符串101代表的二进制转换十进制数 用bin(5)可以将十进制数5转换二进制数101 实例2: num2Reverse = input("请输入二进制数字") num10 = 0 index = 0 for i in num2Reverse: if ...
    实例1:
    num10 = int(num2,2)

    用int(“101',2)可以把字符串101代表的二进制数转换成十进制数

    用bin(5)可以将十进制数5转换成二进制数101

    实例2:
    
    num2Reverse = input("请输入二进制数字")
    
    num10 = 0
    index = 0
    
    for i in num2Reverse:
        if i == "1":
            print("i值",i)
            num10 = num10 + 2 ** index
            print("index值",index)
            print("值1",num10)
        index += 1
    print(num10)
    

     

    展开全文
  • C语言实现二进制转换十进制

    热门讨论 2010-10-26 17:15:43
    一个用C语言实现二进制十进制的方法,有详细代码说明与源代码,可以直接COPY运行。
  • QT 简单二进制转换十进制

    千次阅读 2020-05-19 11:12:16
    直接上代码 int SettingMode::binToDec(QString strBin) { int j = 1, value = 0; for(int i = strBin.length()-1 ; i>=0;i--){ value +=strBin.mid(i,1).toInt()*j; j *= 2;...拿过去直接用
  • 负数二进制转换十进制

    千次阅读 2013-10-14 22:45:46
    题目: 设某单字节整数的二进制形式为11010011,其分别作为有符号和无符号整数转换十进制的形式为 负数 1101 0011 -------(取反码)>1010 1100(末位+1)------->1010 1101
  • //题目:八进制转换十进制 #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++;...
  • 进制转换二进制、八进制、十六进制、十进制之间的转换 不同进制之间的转换在编程中经常会用到,尤其是C语言。 将二进制、八进制、十六进制转换十进制 二进制、八进制和十六进制向十进制转换都非常容易,就是...
  • 进制转换进制转换十进制二进制二进制转十进制二进制转八进制 及 八进制转十进制二进制转十六进制 及 十六进制转十进制 进制转换 进制转换是人们利用符号来计数的方法。今天主要说一下十进制、二进制、八进制...
  • 进制类型进制可以分为以下...十进制转换二进制(整数)(最后一个一可以直接写上去)2.十进小数制转二进(如果是负数的话只需要在前面加入负号即可)1.3二进制十进制整数1.4二进制十进制小数八进制(0,1,2,3,4,5,6,7...
  • 十进制转换为十六进制,也就是 采用 除k取余法 ,直接让10处以16,再对 数据如果小于10和大于10进行处理,代码如下: #include<iostream> #include<string> using namespace std; int main() { ...
  • 1.十进制转换二进制 #include using namespace std; int main(){  int N;  cout  int aa[20];  cin>>N;  int temp;  temp = N;  int num;  int i=0;  while(temp !=0)  {
  • 我们在学习python时候肯定会碰到关于进制转换,其实这是非常简单的,这个就像小学学习数学乘法口诀意义,只要记住转换口诀即可轻松应用,一起来看下具体的操作内容吧~一、python进制转换dec(十进制)—> bin(...
  • 十进制小数转换二进制小数把十进制小数转换二进制小数所采用的规则是“乘以2取整数”。方法是用2乘以十进制纯小数,将其结果的整数部分去掉;再用2乘余下的纯小数部分,再去掉其结果的整数部分;如此继续下去,...
  • 如何在Java程序中将二进制转换十进制?在本节中,我们将把二进制数转换成十进制表示。在我们的程序中,我们定义了一个字符串格式的二进制数字,然后将其转换为十进制数字。java.lang包提供了将整数数据转换为二...
  • 进制转换器 对于十进制 十六进制 和二进制等进制进行相互转换 操作简单界面简介
  • 这里只是一个简单的十六进制和二进制转换
  • 二进制,十进制,八进制,十六进制转换

    万次阅读 多人点赞 2019-01-07 23:33:55
    二进制十进制转换 (1)二进制十进制 方法:“按权展开求和” 【例】:整数转换 【例】:小数转换 (0.101)2 = 1x2-1 +0x2-2 +1x2-3 = (0.625)10 规律:个位上的数字的次数是0,十位上的数字的次数是1,…,...
  • 进制转换1.0 是一个数值的进制转换软件 支持 二进制转换十进制或十六进制 十进制转换为二进制或十六进制 十六进制转换为二进制或十进制
  • python 二进制、十进制转换 十进制二进制 n:十进制数 tl:二进制字符串长度 ts:二进制字符串形式 def num2code(n): if n > 0: ts = bin(n)[2:] tl = len(ts) elif n < 0: tn = (-n) ^ 0x...
  • 我正在尝试使用Java将用户输入的十进制转换二进制数。我收到错误package reversedBinary;import java.util.Scanner;public class ReversedBinary {public static void main(String[] args) {int number;Scanner in...
  • 进制转换二进制转八进制,十进制,十六进制二进制转八进制二进制转十进制二进制转十六进制八进制转二进制,十进制,...1:先将二进制转换十进制 string-->int Convert.ToInt32("1010", 2)//输出: 10 2:再将十进制

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 18,448
精华内容 7,379
关键字:

二进制转换十进制