精华内容
下载资源
问答
  • 十进制有小数转二进制位数
    千次阅读
    2022-08-06 07:54:25

    整数部分的十进制和二进制转换很容易,下面我们只考虑小数部分的转化:

    一、十进制小数转二进制

    小数部分十进制小数乘以 2,得出的积,然后把积的整数位取出,再用积的小数部分乘以 2,再把积的整数位取出,再用小数部分乘以 2,循环操作,直到小数部分为 0,或者遇到无限循环,取到你认为足够精度的小数为止,然后把取出的整数位顺序连接起来,就是要转换成的二进制小数。

    例如:

    0.125的十进制转换成二进制形式

    计算

    取整数部分

    0.125*2=0.25

    0

    0.25*2=0.5

    0

    0.5*2=1

    1

    所以:

    0.125的二进制形式为0.001

    比如:0.4 要转换成二进制数

    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

    0.4* 2= 0.8取整数位0

    0.8* 2= 1.6取整数位1

    ......

    这样就会无限循环下去,小数部分也不会为 0。那就取一个你认为合适的精度。

    0.0110011001

    = 0.39941406 //无限接近0.4

    这样看来,最末尾的数字如果不是5,最后的都只能根据所需精度取近似值。

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

          从二进制小数部分的左边第一位开始,由高位到低位,依次乘以 2 的 -1 次方,2 的 -2 次方,2的 -3 次方... 最后把所有的结果相加,就是要转换的十进制小数。

    第1位*1/2   (即0.5)

    第2位*1/4   (即0.25)

    第3位*1/8   (即0.125)

    第4位*1/16 (即0.0625)

    .

    .

    .

    .

    例如:

    0.001的二进制转换成十进制数

    位数

    位值

    计算

    结果

    加和

    1

    0

    0*0.5=0

    0

    2

    0

    0*0.25=0

    0

    3

    1

    1*0.125=0.125

    0.125

    0.125

    例如:

    0.1011的二进制转换成十进制数

    位数

    位值

    计算

    结果

    加和

    1

    1

    1*0.5=0.5

    0.5

    2

    0

    0*0.25=0

    0

    3

    1

    1*0.125=0.125

    0.125

    4

    1

    1*0.0625=0.0625

    0.0625

    0.6875

    所以

    1位小数的精度是 2^-1 =0.5

    2位小数的精度是 2^-2 =0.25

    3位小数的精度是 2^-3 =0.125

    4位小数的精度是 2^-4 =0.03125

    5位小数的精度是2^-5  =0.015625

    所以你希望精度是0.1,或者0.01都是做不到的,那样只能取近似值;

    三、小数十进制转换为16进制

    小数部分十进制小数乘以16,得出的积,然后把积的整数位取出,再用积的小数部分乘以16,再把积的整数位取出,再用小数部分乘以 16,循环操作,直到小数部分为 0,或者遇到无限循环,取到你认为足够精度的小数为

    止,然后把取出的整数位顺序连接起来,就是要转换成的16进制小数。

    0.125的十进制转换成16进制形式:

    0.125* 16= 2取整数位2

    0.125的十六进制形式为0.2

    考虑前面0.125计算出来的二进制形式为0.001,我们四位一组补齐,那么0.125的二进制形式为0.0010,整数中的二进制0010B=2H,这样直接就得到了16进制的0.2;

    再举一例测试:十进制的0.375分别转换成二进制数和十六进制数分别是:

    1、按十到二进制转换方法计算得出0.375的二进制表示为:0.011    

    2、按十到二进制转换方法计算得出0.375的二进制表示为:0.6

    我们将0.375的二进制结果末尾0.011补0凑成四位,则得到0.375的二进制表示为0.0110,于是根据整数二进制十六进制转换方法得到0.375的十六进制结果为0.6;

    于是得到小数二进制和十六进制的转换方式和整数部分是相同的,二进制往右补0,补齐4位,8位,12位等4的倍数位数即可;

    再用前面的0.4为例计算:

    0.4*16= 6.4取整数位6

    0.4* 16= 6.4取整数位6

    0.4* 16= 6.4取整数位6

    ......

    这样会无限循环下去…我们取两位得到0.4的十六进制结果是0.66,按三中的分析方法,直接得到0.4二进制结果是0.01100110。这和前面利用十进制转二进制方法的得到的结果是一致的。

    由此推广到所有小数的进制互换,二进制,八进制,十进制,十六进制表示方法之间的相互转换,顿时豁然。

                                                         2022年8月5日 长沙

    更多相关内容
  • 这篇文章主要介绍了Python实现的十进制小数与二进制小数相互转换功能,结合具体实例形式详细分析了二进制与十进制相互转换的原理及Python相关实现技巧,需要的朋友可以参考下本文实例讲述了Python实现的十进制小数与二...

    这篇文章主要介绍了Python实现的十进制小数与二进制小数相互转换功能,结合具体实例形式详细分析了二进制与十进制相互转换的原理及Python相关实现技巧,需要的朋友可以参考下

    本文实例讲述了Python实现的十进制小数与二进制小数相互转换功能。分享给大家供大家参考,具体如下:

    十进制小数 ⇒ 二进制小数

    乘2取整

    对十进制小数乘2得到的整数部分和小数部分,

    整数部分即是相应的二进制数码,

    再用2乘小数部分(之前乘后得到新的小数部分),又得到整数和小数部分。

    如此不断重复,直到小数部分为0或达到精度要求为止.

    第一次所得到为最高位,最后一次得到为最低位

    如:

    0.25的二进制

    0.25*2=0.5 取整是0

    0.5*2=1.0 取整是1

    即0.25的二进制为 0.01 ( 第一次所得到为最高位,最后一次得到为最低位)

    0.8125的二进制

    0.8125*2=1.625 取整是1

    0.625*2=1.25 取整是1

    0.25*2=0.5 取整是0

    0.5*2=1.0 取整是1

    即0.8125的二进制是0.1101(第一次所得到为最高位,最后一次得到为最低位)

    def dec2bin(x):

    x -= int(x)

    bins = []

    while x:

    x *= 2

    bins.append(1 if x>=1. else 0)

    x -= int(x)

    return bins

    print(dec2bin(.8125))

    # [1, 1, 0, 1]

    二进制小数 ⇒ 十进制小数

    小数点后,从左向右,每位分别表示

    3103390f7c270dd1e855fb0550495609-0.jpg

    def bin2dec(b):

    d = 0

    for i, x in enumerate(b):

    d += 2**(-i-1)*x

    return d

    print(dec2bin(0.8125))

    # [1, 1, 0, 1]

    print(bin2dec(dec2bin(0.8125)))

    # 0.8125

    以上就是Python十进制小数和二进制小数相互转换的实现方式的详细内容,更多请关注php中文网其它相关文章!

    article_wechat2021.jpg?1111

    本文原创发布php中文网,转载请注明出处,感谢您的尊重!

    展开全文
  • 再用2去除商,又会得到一个商和余数,如此重复,直到商为小于1时为止,然后把先得到余数作为二进制数的低位有效位,后得到的余数作为二进制数的高位有效位,以此排列起来。注1:当一个整数除另一个整数得到整数商而...

    第一种:用2整除的方式。

    用2整除十进制整数,得到一个商和余数;再用2去除商,又会得到一个商和余数,如此重复,直到商为小于1时为止,然后把先得到余数作为二进制数的低位有效位,后得到的余数作为二进制数的高位有效位,以此排列起来。

    注1:当一个整数除另一个整数得到整数商而没有余数时,叫做整除。如2除6得3,就说2能整除6或6能被2整除。

    注2:除以是被除数在前,除数在后;除是除数在前,被除数在后。如32÷8=4可描述为:8除32等于4,或者32除以8等于4。

    以十进制100转换为二进制为例:

    100/2=50余0;50/2=25余0;25/2=12余1;12/2=6余0;6/2=3余0;3/2=1余1。以此排列十进制的100转换成二进制是:1100100。

    计算如下:

    574fcbae0ba94ebe52155385c005b4cf.png

    第二种:1248比表法(学名不知道,自己取的)。

    对比表如下:

    5c9a8f53cf9455ff3f2ecbd484916942.png

    以十进制100转换为二进制为例:

    从左至右依次开始:100比128小,取0;100比64大,取1,剩36;36比32大,取1,剩4;4比16小,取0;4比8小,取0;4不比4小,取1,剩0;0比2小,取0;0比1小,取0。最终得:01100100。

    1cc00cb451e310e9bb08d58dae3b6481.png

    得:1100100

    又如十进制168转换为二进制:

    44a853bbf72e68aa27f9b2b67f75f99c.png

    得:10101000

    展开全文
  • 十进制:由 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学习网教学中心。

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

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

    2021-06-24 12:40:04
    中文名十进制转二进制外文名Decimal system to binary system适用领域电子、编程、编码应用学科数学十进制转二进制二进制转十进制编辑语音十进制转二进制方法一小数点前或者整数要从右到左用二进制的每个数去乘以2的...
  • 我们人类常用的是十进制,那么二进制十进制之间是一个转换方法的。二进制转换十进制一个二进制数转换为十进制数,是比较简单的,其方法就是用每一个位置上的数字乘以该位置的权重,然后相加得到。举个例子,...
  • 希望做好这个笔记后能够牢牢记住十进制转换为二进制十进制转二进制分为整数转二进制,和小数转二进制整数转二进制采用"除2取余,逆序排列"法:1.首先用2整除一个十进制整数,得到一个商和余数2.然后再用2去除得到的...
  • 二进制十进制小数位怎么

    千次阅读 2020-06-30 07:53:19
    二进制转十进制 (0.001)2 ->十进制 从小数点后第一位开始,依次乘2的-1次方 0×2-1 0×2-2 1×2-3 这里已经把上面的小数点后三位全部乘完 然后将结果相加,0 + 0 + 0.125 = 0.125 所以,(0.001)2 的十进制为0....
  • matlab实现十进制小数转换为二进制

    千次阅读 2021-05-06 07:58:10
    function y=dectobin(innum,N)%十进制小数转换为二进制数%输入参数为innum和N%innum为输入的十进制小数%N为指定转换后二进制位数if (innum>1)|(N == 0)%判断输入的有效性disp('error!');return;end...
  • 这里采用如下方法进行实现:首先讲一下形成代码的理论思路:十进制小数转换为其他进制方法(以二进制为例):取小数点后的数乘以2,取整数部分(0或1)标在后面,然后再用乘以2之后的数的小数部分再乘以2,再取其整数...
  • 在一些数据处理过程中,需要将一组十进制小数转换成二进制数存储或者计算,这种操作在FPGA的使用中会经常遇到。本文分析了十进制小数转换成二进制数的方法。 1.N位二进制数的取值范围 N位无符号型(unsigned)取值...
  • 十进制小数转换成二进制的原理理解 浮点数 发布于 2018-03-08 约 2 分钟 十进制小数转换成二进制的原理理解 在学习浮点数据类型的时候,涉及到了10进制的小数如何成2进制数的问题(此文章不讨论精度问题,仅...
  • x:任何十进制小数number_of_bits_int:用于表示整数部分的位数number_of_bits_fr : 用于表示分数部分的位数format : 我们想要输出的格式......'dec' 或 'bin'。 sign_required:在输出表达式中是否包含符号位的...
  • 有关十进制的转换 有关二进制小数补码表示
  •  在 Begin-End 区间实现DecToBin_point(d)函数,其功能是用乘二取整方法计算十进制小数d对应的二进制表示,说明如下:  1)在测试集中,d均为正数(如果你的程序还能处理其它情况则更好);  2)n 取 8,即最多...
  • 十进制小数转为进制小数方法 拿 173.8125 举例如何将之转化为进制小数。 ①. 针对整数部分 173,采取除 2 取余,逆序排列;173 / 2 = 86 … 1 86 / 2 = 43 … 0 43 / 2 = 21 … 1 ↑ 21 / 2 = 10 … 1 | 逆序排列...
  • 十进制小数转十六进制(浮点型16进制)C语言代码+2种方法!
  • 十进制小数变二进制小数 二进制分数变十进制分数 二进制小数变十进制小数 有理数和无理数 有理数:整数/循环小数/小数/分数 无理数:无限不循环小数,比如pi/根号二 小数和分数转换 十进制中的小数变分数...
  • Matlab中有二进制转十进制的函数,“bin2dec”,示例如下: 但是这个函数只能进行整数转换,如果有小数的话: 由于需要,最近写了一个小程序,实现带小数二进制转十进制,先看代码: clc clear all % 整数...
  • 二进制整数与十进制整数的互换 二进制小数与十进制小数的互换
  • java实现十进制小数转换二进制

    千次阅读 2016-04-21 18:10:34
    整数和小数分别转换. 整数除以2,商继续除以2,得到0为止,将余数逆序排列.22 / 2 11 ...1 / 2 0 余 1所以22的二进制是10110 小数乘以2,取整,小数部分继续乘以2,取整,得到小数部分0为止,将整数顺序排列.0.8125x
  • 十进制转二进制 比如 10.13 1. 整数部分(除2取余,逆序排列) 具体做法是,用2去除十进制数的整数部分,可以得到一个商和一个余数;再用2去除商,又会得到一个商和余数;继续用2去除商,一直到商为0时停止;然后...
  • 用java实现十进制与二进制小数的互机制   本篇博客主要讲述用java...1、 编写程序实现十进制小数x=0.7 的二进制转换,并分析其误差(即重新将二进制小数十进制小数,和原十进制小数进行比较。) 2、编程...
  • 一、二进制十进制 二进制转十进制 1011010.100101(2)=90.578125(10) 方法一:“按权相加”法 256 128 64 32 16 8 4 2 1 . 0.5 0.25 0.125 0.0625 0.03125 0.015625 0.078125 0.00390625 28 27 26 25...
  • 小数二进制十进制转换

    千次阅读 2019-12-26 11:54:05
    显然就会发现小数部分一直不等于0的情况,这时候就得到一个无限位数二进制小数点,计算机就无法完整保存所以就出现了所谓的浮点误差。 比如2.30换成二进制 0.3 * 2 = 0.6 ——————- 0 0.6 * 2 =...
  • 二进制 二进制就是计算机常用的进制,即逢二进一。例如:1010 八进制 八进制即逢八进一。例如:626 十进制 ...十进制就是我们在计算中常用的进制,...1.二进制转八进制 拿二进制数10010110举例 首先需要3个二进...
  • 转载:http://blog.xdnice.com/blog40543i59178.htmlmatlab提供了一个系统函数dec2bin,可以用来进行十进制数的二进制转换,不过功能有限!在matlab中键入 help dec2bin,如下:DEC2BIN Convert decimal integer to a ...
  • 进制转换(包含小数转换)

    千次阅读 多人点赞 2021-10-18 22:12:20
    进制转换

空空如也

空空如也

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

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