十进制小数分数与二进制的转换

分数化小数(Fractions As Decimals) 被除数a的值在之前出现过,即意味着出现循环节!一串数字:表示 a/ba/b 的二进制小数表示。易知,除法过程可视作若干次减法过程,整个过程。两个整数:表示 aa 与 bb。即为该值第一次出现位置的后一位)被除数a的位置(对应的商值位),3、如此,时间复杂度为O(n)。记录循环节开始位置。 阅读详情
AI摘要

本文介绍如何将十进制数转换为二进制数,并提供了详细的步骤说明,包括整数和小数部分的转换方法。同时,也讲解了如何将二进制数转换回十进制数。

 

十进制分数转换为二进制数
使用短除法。

例如将十进制分数11/28转换为二进制数,过程如下:
1、首先将分子分母分别转换成二进制 
(11)10=(1011)2 
(28)10=(11100)2 


2、使用短除,借位时是借2,商只能是0或1 

 
     所以:11/28=1011/11100=0.01100100...


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

十进制数的整数位是二进制数的整数位,十进制数的小数位是二进制数的小数位。两部分分开转换。

整数部分 除以2取余,逆序排列。
小数部分 乘 2 取整,顺序排列。

例如转换十进制小数11.4,过程如下。

计算整数部分,11转换为二进制位1011:



计算小数部分0.4,首先将小数部分一直乘2,积的整数部分顺序取出:
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      |

可以看出0110是循环,因此小数部分的二进制是
0.01100110……(循环0110)

最终结果是整数位和小数位合并1101111.01100110……(2)
 

二进制小数转换为十进制小数
使用按权展开求和法,小数点左边是2的正数次方,从0开始;小数点右边是2的负数次方,从-1开始。 

例如将101.111(2)转换成十进制数

                1*(2^2)+0*(2^1)+1*(2^0)       # 整数部分

  + 1*(2^(-1))+1*(2^(-2))+1*(2^(-3))       # 小数部分

                                              =5.875
 

附 python 版十进制与二进制转换

 

# coding=UTF-8
from decimal import Decimal


def dec2bin(n, bit=20):
    """
    n, integer or float to convert
    bit, bits after point
    return binary, string
    """
    negative = False
    if n < 0:
        negative = True
        n *= -1

    integer = int(n)
    decimal = n - integer
    binary = ""

    if n == 0:
        return "0"

    while integer != 0:
        result = int(integer % 2)
        integer /= 2
        binary = str(result) + binary

    if decimal != 0:
        i = 0
        decimal_bin = ""  # binary decimal after convert
        while decimal != 0 and i < bit:
            result = int(decimal * 2)
            decimal = decimal * 2 - result
            decimal_bin += str(result)
            i += 1
        binary = binary + '.' + decimal_bin

    if negative:
        binary = '-' + binary

    return binary

def bin2dec(n):
    """
    n binary, support point
    return integer or float
    """
    negative = False
    if n < 0:
        negative = True
        n *= -1

    integer = int(n)
    decimal = n - integer

    if integer != 0:
        integer_str = str(integer)
        length = len(integer_str)

        integer = 0
        for i in xrange(0, length):
            bit = int(integer_str[i])
            if bit == 1:
                integer += 2 ** (length - i - 1)
            elif bit != 0:
                print "invalid integer:" + str(n)

    if decimal != 0:
        decimal_str = str(decimal)[2:] # skip "0."
        length = len(decimal_str)

        decimal = 0
        for i in xrange(0, length):
            bit = int(decimal_str[i])
            if bit == 1:
                decimal += 2 ** (-1 * (i + 1))
            elif bit != 0:
                print "invalid decimal:" + str(n)

    result = integer + decimal

    if negative:
        result *= -1

    return result


def testcases():
    for pair in [(125, '1111101'),
                 (1.3, '1.01001100110011001100'),
                 (2.5, '10.1'),
                 (0, '0'),
                 (-1, '-1'),
                 (0.5, '.1')]:
        assert pair[1] == dec2bin(pair[0])

    for pair in [(-1001.1100, -9.75),
                 (-1101, -13),
                 (111.111, 7.875),
                 (0.1101, 0.8125),
                 (1001, 9),
                 (0, 0),
                 (0.1, 0.5)]:
        assert pair[1] == bin2dec(pair[0])

    print "all test case success"


if __name__ == "__main__":
    # testcases()
    print bin2dec(0.5)

 

 

 

参考:

 

 

 

http://blog.youkuaiyun.com/caoguo_app_android/article/details/9955743

 

 

ansys workbench 静力结构分析 高阶教程 ansys workbench 静力结构分析 高阶教程 目录ansys workbench 静力结构分析 高阶教程新建工程模型导入设置材料模型简化: 主要内容: 材料设置、模型简化、网格细化、约束分析、接触设置、求解设置、报错处理、结果分析 基础教程: ansys workbench 静力结构分析 基础操作流程(入门) ansys版本: 19.0(16.0及以上均可) 参考资料: 推荐教学视频《有限元分析 张晔》(超详细 ???? )、ansys workbench 超级学习手册(查阅用) 说明:一些基 阅读详情

相关推荐

数据预处理的分箱操作

数据分箱 介绍 我们在建立模型前,一般需要对特征变量进行离散化,特征离散化后,模型会更稳定,降低模型过拟合的风险。尤其是采用 logsitic 建立评分卡模型时,必须对连续变量进行离散化。而特征离散化处理通常采用的就是分箱法,数据分箱(也称为离散分箱或分段)是一种数据预处理技术,用于减少次要观察误差的影响,提高泛化性。 数据分箱又分为有监督分箱和无监督分箱,是否使用标签进行离散化(分箱)决定了有监督还是无监督的离散化方法。 知识点 无监督分箱 split 分箱 merge 分箱 无监督分箱 这里为了

随笔记 5332

将十进制分数转化成二进制

直接把分子先百化成二进制,这个很简单,分子一直除以2依次取余再反过来就度是二进制了,然后解决分母:分母是64的话,2的6次方就是64,再把刚刚求得的二进制的小数点往左退6位就是这个分数的二进制数了。比如-27/64,-27=-11011,小数点往左移动回6位=-0.011011=1.011011 补码:除了符号位,各位取反末位加1=1.100101. 反码=补码-1,所以直接对原码除了符号为求反即可。 ...

weixin_43376075的博客 1万+

Conda报错急救指南:遇到Malformed version string ‘~‘怎么办?(附最新解决方案)

本文深度解析Conda报错`Malformed version string '~'`的根源与解决方案。该错误通常由版本字符串解析异常或Conda版本过旧引起。文章提供了从清理缓存、针对性升级到环境重建的完整修复流程,并强调了升级Conda至最新版本是解决此类`CondaValueError`问题的根本方法,帮助开发者高效恢复工作环境。

weixin_28835789的博客 646

将分数转换为二进制

举个例子就啥也知道了! 就拿 29/128 举例子吧!!如果是负数,在转换完的二级制数前面加符号就可以啦。   步骤一 把分子和分母都转换为二进制,要表示为2的多少次。 那么分子表示为:24+23+22+20 那么分母呢:27 继续将他们写成分数形式:(24+23+22+20)/27。 接下来计算就好了,结果为:2-3+2-4+2-5+2-7。   步骤二 讲一个小知识点:对于...

weixin_44915226的博客 4万+

Python+OpenCV实战:雨天车牌识别准确率提升300%的5个关键技巧

本文针对雨天车牌识别准确率骤降的难题,分享了五个基于Python和OpenCV的实战技巧。通过暗通道先验去雾、雨纹抑制、光照不变量颜色空间转换、多尺度自适应阈值分割以及融合传统特征与轻量级深度学习的混合识别策略,系统性地提升了算法在恶劣天气下的鲁棒性。这些方法能有效解决图像模糊、对比度低、字符断裂粘连等问题,为智能交通等实际应用提供可靠解决方案。

k8l9m0n的博客 715

瑞芯微RK3588开发板VSCode远程开发全攻略:从SSH配置到插件优化

本文详细介绍了如何在瑞芯微RK3588开发板上配置VSCode远程开发环境。从Ubuntu系统下的SSH服务设置、VSCode Remote-SSH扩展安装,到连接建立、基础工具链部署,再到针对ARM平台的性能优化与调试配置,提供了一套完整的实战指南,帮助开发者高效利用本地资源进行嵌入式开发。

weixin_28831341的博客 621

十进制分数转二进制数

3.把1101小数点往左移7位 得到二进制原码0.0001101(注意符号位的值)对应的补码就是0.1110011(原码符号位不变,数值位取反)1.分子13根据8421码表 转成二进制1101。1.分子转二进制 8421码表。3.分子的二进制小数点往左移n位。例如:13/128 转二进制。2.分母128 = 2的7次方。2.分母转成2的n次方。

weixin_62497859的博客 2125

CentOS7 编译升级GCC至9.3.0

1)下载GCC9.2.0源码并解压 从GCC官方FTP下载地址可以看到GCC最新版本为9.3.0。由于官网下载速度慢,实际上用清华大学的镜像站进行下载,代码如下: wget -c /opt/tmp/ https://mirrors.tuna.tsinghua.edu.cn/gnu/gcc/gcc-9.3.0/gcc-9.3.0.tar.gz #考虑到安装失败的可能性,创建一个临时文件夹来安装GCC...

haha123486的博客 1万+

10进制数转化成2进制数的四种方法

第一种方法: 第二种方法: 第三种方法: 第四种方法:

黄俊东的专栏 9778

使用cubeMX生成USB HID设备

本文主要介绍如何使用stm32开发板和cubeMX生成HID设备,供参考。

专注音频,高效工作,快乐生活! 970

ModuleNotFoundError: No module named‘langchain.schema.output parserlangchain.schema is not a package

电脑里现有的langchain库版本与import所需的不同,卸载原有langchain,重新下载最新的langchain。在步骤1后,若仍不可运行。在确保已重新下载新langchain后,重启python后,可正常运行。在版本号中填入所需的langchain版本号,可在requirements.txt查看。运行如下代码时,出现error。

weixin_45751925的博客 1713

十进制分数转换二进制数

在进行十进制数转换为二进制数时: 设A/B(十进制分数)=0.x1,x2,x3,…xn (转化而成的n位二进制) 若 2A>=B,则得一位二进制数 ”1“,且A=2A-B; 若2A<B,则得一位二进制数”0“,且A=2A; 重复如上操作,直至A=0或进入循环为止。 ...

qq_45759861的博客 2264

【深度学习新浪潮】OpenClaw技术架构详解:从核心组件到生产级优化

OpenClaw 以三层解耦架构 + 四大核心模块为基础,实现了本地优先、易部署、易扩展、易优化的 AI 智能体平台。开发者可通过极简部署快速落地,再通过量化、缓存、并发、分布式等手段持续优化性能,适合从个人助理到企业级自动化的全场景应用。

专注:太空算力、AI infra、异构调度、大模型成本工程 2920

二进制与十进制转换/小数变分数/分数变小数

目录 有理数和无理数 小数和分数转换 十进制中的小数变分数 十进制中的分数变小数 二进制中的小数变分数 二进制中的分数变小数 十进制和二进制转换 十进制分数变二进制分数 十进制小数变二进制小数 二进制分数变十进制分数 二进制小数变十进制小数 有理数和无理数 有理数:整数/循环小数/小数/分数 无理数:无限不循环小数,比如pi/根号二 小数和分数转换 十进制中的小数变分数 举例:3.6666…,也可以写作3.(6) 方法: (1)令 x = 3.666… (

硕升专转码学CS 2333

Camera2Demo

在Camera2 的基础上进行封装,使得Camera2一堆初始化逻辑与Activity分离,降低耦合度,完成预览拍照并保存的操作

win10 跳过U8环境检测的IE WebControls.rar

win10 安装u8的时候 提示IE WebControls 不通过,这个工具可以欺骗u8的检查。 跳过U8环境检测的IE WebControls。提示导入失败后,重新检测通过。

十进制小数分数与二进制之前的转换

原文链接:https://blog.youkuaiyun.com/shelldon/article/details/54411472 十进制分数转换为二进制数 使用短除法。 例如将十进制分数11/28转换为二进制数,过程如下: 1、首先将分子分母分别转换成二进制 (11)10=(1011)2 (28)10=(11100)2 2、使用短除,借位时是借2,商只能是0或1 ...

weixin_34210740的博客 604

霍尼韦尔SoftMaster使用说明

霍尼韦尔SoftMaster使用说明

二进制小数怎么转十进制分数

二进制小数怎么转十进制分数

2301_78505811的博客 742

温度PID控制PLC程序

温度PID稳定控制程序,适用于欧姆龙PLC,对其他PLC也具有很大参考价值

数值计算:二进制分数与十进制分数的转化

数值计算:二进制分数与十进制分数的转化   整数的十进制而二进制的转化比较简单,而且任意一个整数都可以用有限长位数的二进制数来表示,而分数就不一定了。因为整数的最小间隔是1,而分数则可以是无穷小的,所以有时候有限的十进制分数会转化为无限循环的二进制小数 十进制分数转化为二进制分数 二进制的分数可以表示为2的负次幂的和,即假设R是一个正的纯小数,其可以表示为 为了将转化为分数,我们将...

weixin_33964094的博客 1333

double float进制转换

十进制分数转换为二进制数 使用短除法。 例如将十进制分数11/28转换为二进制数,过程如下: 1、首先将分子分母分别转换成二进制  (11)10=(1011)2  (28)10=(11100)2  2、使用短除,借位时是借2,商只能是0或1              0.0110010          ————————   11100 ) 1011.00 

zcw4237256的博客 828

C语言:将十进制分数转换为二进制分数

请考虑下面给出的示例,以了解如何在 C 编程语言中将十进制分数转换为二进制分数。− 将 25 转换为二进制。步骤 1 − 25 / 2 Rem : 1 , Quo : 12步骤 2 − 12 / 2 Rem : 0 , Quo : 6步骤 3 − 6 / 2 Rem : 0 , Quo: 3步骤 4 − 3 / 2 Rem : 1 , Quo: 1步骤 5 − 1 / 2 Rem : 1 , Quo: 0所以等效的二进制数是:11001− 将 0.7 转换为二进制。

新华编程特战队 441

二进制小数 转 十进制方法

知识点一:一个数的负次方即为这个数的正次方的倒数。 方法一、转换分数法 参考文章:https://jingyan.baidu.com/article/597a0643614568312b5243c0.html 参考文章:https://zhidao.baidu.com/question/1308562360873359899.html 举例:将 二进制0.1111转换成 十进制数 二进制...

4万+

将数字从十进制转换为二进制

I recently introduced the Decimal Number System, the one we are used as humans, and the Binary Number System, the one machines are used to. 我最近介绍了十进制数系统 (一种我们用作人类)和二进制数系统 (一种用于机器)。 In this tutorial...

cuk0051的博客 2708

二进制如何表示小数

比如十进制的小数0.25,也就是1/4;也就是2-2 ; 那么 2-2 如何二进制表示呢? 我们先理解简单的十进制; 十进制的0.1就是1/10; 十进制的0.01就是1/100,也就是1* 10-2; 十进制的0.001就是1/1000,也就是1* 10-3; 换成二进制 0.1就是1/2,也就是1* 2-1 0.01就是1/4;也就是1* 2-2 0.001就是1/8;也就是1* 2-3...

weixin_47267435的博客 183

小数用c语言表示什么,c ++-用二进制表示法,小数点“。”之后的数字是什么意思?...

考虑到它们以与整数完全相同的方式工作,其他基数中的“小数”(分数位)令人惊讶地不直观。base 10scinot 10e2 10e1 10e0 10e-1 10e-2 10e-3weight 100.0 10.0 1.0 0.1 0.01 0.001value 0 4 5 .2 5 0base 2scinot 2e6 2e5 2e4 ...

weixin_29383401的博客 598

二进制为什么无法精确表示分数1/10,二进制与十进制如何相互转化

二进制为什么无法精确表示分数1/10,二进制与十进制相互转化

JavaEE技术进阶之路 1467

有小数点的补码怎么算_小数和分数的原码&补码

一、十进制分数原码和补码可以先将分子和分母分别表示成二进制数,然后计算出二进制小数,再按下面第三步的方法将求出小数的原码和补码形式。37/64=100101B/2^6=0.100101B-51/128=110011B/2^7=0.0110011B二、十进制小数的原码和补码也应该先将其转换成二进制小数,再按下面第三步的方法将求出小数的原码和补码形式。0.375=0.011B0.5625=0.1001...

weixin_30608641的博客 1万+

转化小数题解

题目:给定一个以十进制表示的分数 a/b,保证 am则n-=m,答案为1。如果n

Jaydenyu2012的博客 232
上一篇: JPEG系列二 JPEG文件中的EXIF(下)
下一篇: Linux模拟复杂网络环境下的传输(netem和tc)
shelldon
博客等级 码龄17年 140粉丝 16原创
评论 11
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值