精华内容
下载资源
问答
  • 十进制:由 0~9 十个数字组成二进制:由 0和1 两个数字组成1、整数转换十进制转二进制的原理:十进制的数除以2,直到商为0,最后反向取余数。比如下图中的例子,十进制的13转为二进制表示,则为1101。二...

    计算机在部分区域里可以看成数学计算,也是毫无违和感的,关于进制的转换就是其中之一,这次给大家带来关于小数位的进制转换。

    1603789719271096.jpg

    简介:

    位运算在计算机编程中经常用到,所以掌握十进制和二进制间的转换十分重要。

    十进制:由 0~9 十个数字组成

    二进制:由 0和1 两个数字组成

    1、整数转换

    十进制转二进制的原理:十进制的数除以2,直到商为0,最后反向取余数。

    比如下图中的例子,十进制的13转为二进制表示,则为1101。

    1603789571360030.png

    二进制转十进制的原理:二进制数的每一位乘以2的n次方,n 从零开始,每次加一,最后累加。

    下面是将二进制的1101转为十进制的13。

    1603789581152878.png

    2、小数转换

    对于小数,二进制 转 十进制 比较简单,仍是二进制数的每一位乘以2的n次方,小数点前面的 n 从零开始,每次加一;小数点后面的 n 从-1开始,每次减一,最后累加。

    1603789593348337.png

    十进制 转 二进制 相对麻烦些,用2乘十进制小数,可以得到积,将积的整数部分取出,再用2乘余下的小数部分,又得到一个积,再将积的整数部分取出,如此进行,直到积中的小数部分为0,整数部分为1,此时1为二进制的最后一位。

    下图是将十进制的0.625转换为二进制表示的0.101。

    1603789606362415.png

    不过,不是所有的十进制小数都恰好能用二进制精确表示。比如十进制的0.3转化为用二进制表示,如下图所示。若用小数点后六位来表示,则只能近似为0.296875。

    从上面的例子可以看出,二进制小数点后面的位数越多,则能表示的小数点后面的有效数字越多。

    大家也可以自己实际操作试试看小数为位的进制转换,如需更多python实用知识,点击进入PyThon学习网教学中心。

    展开全文
  • 中文名十进制转二进制外文名Decimal system to binary system适用领域电子、编程、编码应用学科数学十进制转二进制二进制转十进制编辑语音十进制转二进制方法一小数点前或者整数要从右到左用二进制的每个数去乘以2的...

    十进制数转换为二进制数时,由于整数和小数的转换方法不同,所以先将十进制数的整数部分和小数部分分别转换后,再加以合并。

    中文名

    十进制转二进制

    外文名

    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次方是2

    2的2次方是4

    2的3次方是8

    2的4次方是16

    2的5次方是32

    2的6次方是64

    2的7次方是128

    2的8次方是256

    2的9次方是512

    2的10次方是1024

    2的11次方是2048

    2的12次方是4096

    2的13次方是8192

    2的14次方是16384

    2的15次方是32768

    2的16次方是65536

    2的17次方是131072

    2的18次方是262144

    2的19次方是524288

    2的20次方是1048576

    即:

    58c80560a1fae8271e76f9c77486c89e.png

    2的次方

    此时,1101=8+4+0+1=13

    再比如:二进制数100011转成十进制数可以看作这样:

    数字中共有三个1 即第六位一个,第二位一个,第一位一个(从右到左),然后对应十进制数即2的0次方+2的1次方+2的5次方, 即

    100011=32+0+0+0+2+1=35

    十进制转二进制十进制转二进制

    编辑

    语音

    4b50872c251134a85087939c1cab9a13.gif1. 十进制整数转换为二进制整数十进制整数转换为二进制整数采用"除2取余,逆序排列"法。具体做法是:用2整除十进制整数,可以得到一个商和余数;再用2去除商,又会得到一个商和余数,如此进行,直到商为小于1时为止,然后把先得到的余数作为二进制数的低位有效位,后得到的余数作为二进制数的高位有效位,依次排列起来。

    十进制整数转二进制

    如:255=(11111111)B

    255/2=127=====余1

    127/2=63======余1

    63/2=31=======余1

    31/2=15=======余1

    15/2=7========余1

    7/2=3=========余1

    3/2=1=========余1

    1/2=0=========余1

    789=1100010101(B)

    789/2=394 余1 第10位

    394/2=197 余0 第9位

    197/2=98 余1 第8位

    98/2=49 余0 第7位

    49/2=24 余1 第6位

    24/2=12 余0 第5位

    12/2=6 余0 第4位

    6/2=3 余0 第3位

    3/2=1 余1 第2位

    1/2=0 余1 第1位

    原理:

    众所周知,二进制的基数为2,我们十进制化二进制时所除的2就是它的基数。谈到它的原理,就不得不说说关于位权的概念。某进制计数制中各位数字符号所表示的数值表示该数字符号值乘以一个与数字符号有关的常数,该常数称为 “位权 ” 。位权的大小是以基数为底,数字符号所处的位置的序号为指数的整数次幂。十进制数的百位、十位、个位、十分位的权分别是10的2次方、10的1次方、10的0次方,10的-1次方。二进制数就是2的n次幂。

    按权展开求和正是非十进制化十进制的方法。

    下面我们开讲原理,举个十进制整数转换为二进制整数的例子,假设十进制整数A化得的二进制数为edcba 的形式,那么用上面的方法按权展开, 得

    A=a(2^0)+b(2^1)+c(2^2)+d(2^3)+e(2^4) (后面的和不正是化十进制的过程吗)

    假设该数未转化为二进制,除以基数2得

    A/2=a(2^0)/2+b(2^1)/2+c(2^2)/2+d(2^3)/2+e(2^4)/2

    注意:a除不开二,余下了!其他的绝对能除开,因为他们都包含2,而a乘的是1,他本身绝对不包含因数2,只能余下。

    商得:

    b(2^0)+c(2^1)+d(2^2)+e(2^3),再除以基数2余下了b,以此类推。

    当这个数不能再被2除时,先余掉的a位数在原数低,而后来的余数数位高,所以要把所有的余数反过来写。正好是edcba

    2.十进制小数转换为二进制小数

    十进制小数转换成二进制小数采用"乘2取整,顺序排列"法。具体做法是:用2乘十进制小数,可以得到积,将积的整数部分取出,再用2乘余下的小数部分,又得到一个积,再将积的整数部分取出,如此进行,直到积中的小数部分为零,此时0或1为二进制的最后一位。或者达到所要求的精度为止。

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

    十进制小数转二进制

    如:0.625=(0.101)B

    0.625*2=1.25======取出整数部分1

    0.25*2=0.5========取出整数部分0

    0.5*2=1==========取出整数部分1

    再如:0.7=(0.1 0110 0110...)B

    0.7*2=1.4========取出整数部分1

    0.4*2=0.8========取出整数部分0

    0.8*2=1.6========取出整数部分1

    0.6*2=1.2========取出整数部分1

    0.2*2=0.4========取出整数部分0

    0.4*2=0.8========取出整数部分0

    0.8*2=1.6========取出整数部分1

    0.6*2=1.2========取出整数部分1

    0.2*2=0.4========取出整数部分0

    原理:

    关于十进制小数转换为二进制小数

    假设一十进制小数B化为了二进制小数0.ab的形式,同样按权展开,得

    B=a(2^-1)+b(2^-2)

    因为小数部分的位权是负次幂,所以我们只能乘2,得

    2B=a+b(2^-1)

    注意a变成了整数部分,我们取整数正好是取到了a,剩下的小数部分也如此。

    值得一提的是,小数部分的按权展开的数位顺数正好和整数部分相反,所以不必反向取余数了。

    十进制转二进制C++代码void DtoB(int d) {

    if(d/2)

    DtoB(d/2);

    cout<

    }

    十进制转换二进制python代码def Dec2Bin(dec):

    temp = []

    result = ''

    while dec:

    quo = dec % 2

    dec = dec // 2

    temp.append(quo)

    while temp:

    result += str(temp.pop())

    return result

    print(Dec2Bin(62))

    #dec要为正整数

    =====================================

    def bilibili(b):

    t=[]

    i=''

    e=''

    while b<0:

    b=-b

    i='-'

    while b//2!=0:

    a=b%2

    t.append(a)

    b=b//2

    if b!=0:

    t.append(1)

    else:

    t.append(0)

    while t:

    e+=str(t.pop())

    return (i+"0b"+e)

    #b要为整数,效果同Python3.8内置函数bin()

    ===========================================

    十进制转二进制 Visual Basic 2015 代码Private Sub 转换进制(sender As Object, e As EventArgs) Handles btn转换.Click

    If str十进制数是否合法(txt十进制数.Text) = "整数" Then

    MessageBox.Show(str十进制整数转二进制(txt十进制数.Text))

    ElseIf str十进制数是否合法(txt十进制数.Text) = "小数" Then

    Dim 整数部分 As Long = CInt(txt十进制数.Text.Substring(0, txt十进制数.Text.IndexOf(".")))

    Dim 小数部分 As Double = CDbl(CDbl(txt十进制数.Text) - 整数部分)

    MessageBox.Show(str十进制整数转二进制(整数部分) & "." & str十进制小数转二进制(小数部分))

    Else

    MessageBox.Show("输入数值不合法,请重新输入!")

    txt十进制数.SelectAll()

    txt十进制数.Focus()

    End If

    End Sub

    Private Function str十进制数是否合法(ByVal str十进制数 As String) As String

    If IsNumeric(str十进制数) Then

    If str十进制数.Contains(".") Then

    Return "小数"

    Else

    Return "整数"

    End If

    Else

    Return "不是数"

    End If

    End Function

    Private Function str十进制整数转二进制(ByVal lng十进制整数 As Long) As String

    Dim lng被除数 As Long = lng十进制整数

    Dim str结果 As String

    Do

    If lng被除数 Mod 2 = 0 Then

    str结果 &= "0"

    Else

    str结果 &= "1"

    End If

    lng被除数 = lng被除数 \ 2

    Loop Until lng被除数 = 0

    str结果 = StrReverse(str结果)

    Return str结果

    End Function

    Private Function str十进制小数转二进制(ByVal dbl十进制小数 As Double) As String

    Dim dbl被乘数 As Double = dbl十进制小数

    Dim str结果 As String

    Do

    dbl被乘数 *= 2

    If dbl被乘数 >= 1 Then

    str结果 &= "1"

    dbl被乘数 -= 1

    Else

    str结果 &= "0"

    End If

    Loop Until dbl被乘数 = 0

    Return str结果

    End Function

    十进制转二进制PHP代码function Dec2Bin($dec) {

    if (!is_int($dec)) return false;

    $bin = '';

    while ($dec>1) {

    $bin .= $dec%2;

    $dec = ($dec-$dec%2)/2;

    }

    return strrev($bin.$dec);

    }

    十进制转二进制JAVA代码

    public void binaryToDecimal(int n) {

    for(int i = 31;i >= 0; i--) {

    System.out.print(n >>> i & 1);

    }

    }

    词条图册

    更多图册

    展开全文
  • 十进制小数转换为二进制(C++)

    千次阅读 2020-04-26 15:38:37
    今天在学习十进制与二进制的相互转换,学到小数的十进制转换到二进制时,所以我想着能不能用我这菜鸡技术,利用C++来实现只把十进制小数转换成二进制。 【思路】 输入要计算的二进制小数部分 “decimals” 以及要...

    今天在学习十进制与二进制的相互转换,学到小数的十进制转换到二进制时,所以我想着能不能用我这菜鸡技术,利用C++来实现只把十进制小数转换成二进制。

    【思路】

    1. 输入要计算的二进制小数部分 “decimals” 以及要计算出的二进制位数
    2. 循环 while() 部分
      ● 进行小数 * 2 的运算,只输出整数部分(获得二进制数值),这部分利用了 floor() 函数,它会返回比参数小的最大整数
      ● 把整数部分赋值到 “integer”
      ● 用包含了整数与小数的数值减去整数部分,这样就获得了只存在小数部分的数值
    3. 利用 if() 函数,当小数部分为0时停止运算

    【代码部分】

    #include <iostream>
    using namespace std;
    
    int main()
    {
    	double decimals= 0; //decimals 小数
    	int integer,time,a = 1; //interger 整数  time 循环次数  a 初始值
    	cout << "请输入要计算的二进制小数部分"<< endl;
    	cin >> decimals;
    	cout << "想要算出的位数:";
    	cin >> time;
    
    	while (a <= time) {
    		decimals = decimals * 2;//进行小数运算
    		cout << a <<"---"<< floor(decimals) <<endl; //输出整数部分
    		integer = floor(decimals); //获得整数部分
    		decimals = decimals - integer; //去除整数部分
    		a++;
    
    		if(decimals == 0){
    			return 1; //当小数部分为0时停止运算
    		}
    	}
    	return 0;
    }
    

    个人博客:http://www.juepo.cn/(抉破网)

    展开全文
  • 十进制:由 0~9 十个数字组成二进制:由 0和1 两个数字组成1、整数转换十进制转二进制的原理:十进制的数除以2,直到商为0,最后反向取余数。比如下图中的例子,十进制的13转为二进制表示,则为1101。十进制转二进制...
    a550d8e6d540588b14cb180f2bd94bf7.png

    位运算在计算机编程中经常用到,所以掌握十进制和二进制间的转换十分重要。

    • 十进制:由 0~9 十个数字组成
    • 二进制:由 0和1 两个数字组成

    1、整数转换

    十进制转二进制的原理:十进制的数除以2,直到商为0,最后反向取余数。

    比如下图中的例子,十进制的13转为二进制表示,则为1101。

    984bf318033a8eb5c10d1a364e124c8e.png

    十进制转二进制

    二进制转十进制的原理:二进制数的每一位乘以2的n次方,n 从零开始,每次加一,最后累加。

    下面是将二进制的1101转为十进制的13。

    b66daf64f5e9bcb33428ae897d539101.png

    二进制转十进制

    2、小数转换

    对于小数,二进制 转 十进制 比较简单,仍是二进制数的每一位乘以2的n次方,小数点前面的 n 从零开始,每次加一;小数点后面的 n 从-1开始,每次减一,最后累加。

    861d4760ec52dd50947f25a7744116eb.png

    小数-二进制转十进制

    十进制 转 二进制 相对麻烦些,用2乘十进制小数,可以得到积,将积的整数部分取出,再用2乘余下的小数部分,又得到一个积,再将积的整数部分取出,如此进行,直到积中的小数部分为0,整数部分为1,此时1为二进制的最后一位。

    下图是将十进制的0.625转换为二进制表示的0.101。

    89c631e7008c8dd0ecdae979b37c8c66.png

    小数-十进制转二进制

    不过,不是所有的十进制小数都恰好能用二进制精确表示。比如十进制的0.3转化为用二进制表示,如下图所示。若用小数点后六位来表示,则只能近似为0.296875。

    a8d6de98a72efaab61972ee2761f8ce9.png

    小数-十进制转二进制

    从上面的例子可以看出,二进制小数点后面的位数越多,则能表示的小数点后面的有效数字越多。

    C语言中浮点型一般分为 float 单精度型(4个字节)和 double 双精度型(8个字节),单精度浮点型小数点后面有效数字为6位,双精度浮点型小数点后面有效数字为15位。

    相关阅读

    C语言的位级运算:布尔代数

    计算机为什么用二进制和十六进制

    展开全文
  • 我们人类常用的是十进制,那么二进制十进制之间是一个转换方法的。二进制转换十进制一个二进制数转换为十进制数,是比较简单的,其方法就是用每一个位置上的数字乘以该位置的权重,然后相加得到。举个例子,...
  • 1、偏移量的计算:2^(e-1)-1 此处的e为浮点数的二进制位数。 2、如果阶码所表示的位部分要用补码表示的话,那么阶码的所有位都要先取反,然后末尾加1(包括了阶码的符号位)。
  • 十进制小数转换成二进制的原理理解 浮点数 发布于 2018-03-08 约 2 分钟 十进制小数转换成二进制的原理理解 在学习浮点数据类型的时候,涉及到了10进制的小数如何成2进制数的问题(此文章不讨论精度问题,仅...
  • 二进制 二进制就是计算机常用的进制,即逢二进一。例如:1010 八进制 八进制即逢八进一。例如:626 十进制 ...十进制就是我们在计算中常用的进制,...1.二进制转八进制 拿二进制数10010110举例 首先需要3个二进...
  • 在一些数据处理过程中,需要将一组十进制小数转换成二进制数存储或者计算,这种操作在FPGA的使用中会经常遇到。本文分析了十进制小数转换成二进制数的方法。 1.N位二进制数的取值范围 N位无符号型(unsigned)取值...
  • java实现十进制小数转换二进制

    千次阅读 2016-04-21 18:10:34
    整数和小数分别转换. 整数除以2,商继续除以2,得到0为止,将余数逆序排列.22 / 2 11 ...1 / 2 0 余 1所以22的二进制是10110 小数乘以2,取整,小数部分继续乘以2,取整,得到小数部分0为止,将整数顺序排列.0.8125x
  • Matlab中有二进制转十进制的函数,“bin2dec”,示例如下: 但是这个函数只能进行整数转换,如果有小数的话: 由于需要,最近写了一个小程序,实现带小数二进制转十进制,先看代码: clc clear all % 整数...
  • 二进制如何转十进制十进制如何转二进制

    万次阅读 多人点赞 2018-04-06 17:57:29
    学计算机的朋友刚开始学习时都要接触... 二进制主要以下几种:正整数转二进制,负整数转二进制小数转二进制;1、 正整数二进制。要点一定一定要记住哈:除二取余,然后倒序排列,高位补零。 也就是说...
  • 用java实现十进制与二进制小数的互机制   本篇博客主要讲述用java...1、 编写程序实现十进制小数x=0.7 的二进制转换,并分析其误差(即重新将二进制小数十进制小数,和原十进制小数进行比较。) 2、编程...
  • 乘2取整法介绍: 举例:0.35转换成二进制 0.35×2=0.7 ······ 取0(d1) 0.7×2=1.4 ······ 取1(d2) 0.4×2=0.8 ······ 取0(d3) 0.8×2=1.6 ······ 取1(d4) 0.6×2=1.2 ······ ...
  • Java 用循环实现,十进制小数,转换成对应的进制小数并输出。最多保留小数位后7位数字。
  • 二进制整数与十进制整数的互换 二进制小数与十进制小数的互换
  • 十进制转二进制  假设我们要把十进制97转化成二进制!第一步把97除于2 得到48.8,无法整除,然后后面记录1! 无法整除的去到小数位,依次除于2,能整除的记录0,不能整除的记录1 最终的二进制结果为1100001 ...
  • 10进制纯小数2进制小数

    千次阅读 2013-05-01 21:59:00
    今天,毛线同学写作业的时候,突然冒出个想法:写个十进制小数转二进制小数的程序如何? 我一想,中!。刚好写作业的时候,需要用到。 于是,立即回寝室。写起。完成的还是挺快的. 10进制纯小数2进制小数的方法...
  • 十进制小数转为进制小数

    千次阅读 2019-08-29 20:48:51
    问题:十进制下的小数转为二进制下的小数。 方法:取一个小数,如0.4。按照如下方式:'|'左边的2是乘数,'%'右边是余数 2 | 0.4 ----------- 2 | 0.8 % 0 ----------- 2 | 0.6 % 1 ----------- 2 | 0.2 % 1 -----...
  • 打印出二进制(第一个数为个位,第二个数为10位,即乘以10,第三位数为百位, 即乘以100。。以此类推,即循环乘以10),直到除数 为0为止。小数乘以2,取整然后打印2进制,直到小数部分为0为止,或者打印小数 后7...
  • 已成功将现有传感数据导入到DSP端,其导入过程思想如下: **A、**首先,通过对传感数据的观察,如上图...其中n为小数点之后的二进制位数, 例0 111 . 11111,则n=5。 则转换公式为: 例n=4,则 此时,可得出定点小数
  • 遗传算法应用 一、问题概述 求 y=10sin(5x)+7*|x-5|+10 最大值。 二、问题解决 1.产生初始种群 用随机数生成器分别产生8、16、32个随机数(由于...matlab中十进制转二进制函数dec2bin()默认是6位,因此,我们先采用...
  • 圆周率π在十进制下是一个无理数,那么,在二进制下,圆周率会是一个有理数吗?或者说是一个无限循环小数吗?在十进制下,圆周率的大小约为3.141592653589793……。数学家早已经在数学上严格地证明出圆周率是一个...
  • 进制小数--------------->>>>十进制小数 “按权展开求和法”: 例1:将101.111(2)转换成十进制数  1*(2^2)+0*(2^1)+1*(2^0)+1*(2^(-1))+1*(2^(-2))+1*(2^(-3))=5.875  只要记住个位数是2的0次方,往右一次...
  • 编写程序实现将任意十进制小数m转换成n进制的正小数,小数点后保留10位小数。 解答要求: 时间限制1000ms,内存限制64MB。 输入: 输入包含两个数m、n,用空格隔开。输入包含多组测试,当m、n都为0时输入结束...
  • 十进制小数进制小数之间的互相转换

    万次阅读 多人点赞 2013-08-13 23:27:00
    进制小数--------------->>>>十进制小数 “按权展开求和法”: 例1:将101.111(2)转换成十进制数  1*(2^2)+0*(2^1)+1*(2^0)+1*(2^(-1))+1*(2^(-2))+1*(2^(-3))=5.875  只要记住个位数是2的0次方,往右一次增加,...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 30,864
精华内容 12,345
关键字:

十进制有小数转二进制位数