单精度浮点数与十进制数据相互转换
一、float基础:
Float类型占4个字节,也就是32bit,其中最高位是符号位,2~9位是指数位,后边的23bit是数值位.如下所示
大部分数据的二进制形式都可以用科学计数法表示,即1.m*2^n这种形式,只要知道m和n,就能确定一个数值
二、小数位如何转变为二进制:
下面我们具体计算一下0.6的小数表示过程
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.6用二进制表示为 1001 1001 1001 1001 ……
如果是10.6,那个10.6的完整二进制表示为 1010.100110011001……
0.6 = 1 * 2^-1 + 0 * 2^-2 + 0 * 2^-3 + 1 * 2^-4 + ……
2^-1=1/2=0.5
2^-2=1/4=0.25
2^-3=1/8=0.125
......
三、二进制转单精度浮点数公式:
方便区分假设下面是float 的二进制数:
0100 0000 0100 0000 0000 0000 0000 0000
0: 符号位----记为S 0 为正数 1 为负数 1bit
100 0000 0 :阶码---记为E 8bit
100 0000 0000 0000 0000 0000 :尾数位 ---记为M 23bit
公式: (-1)^s *(1.M)*2^(E-127)
四、二进制转单精度浮点数案例:
十六制: 41360000
二进制: 0100 0001 0011 0110 0000 0000 0000 0000
S 0:代表正数
E:100 0001 0 =130
(E-127)=130-127=3
M :1. 011 0110 0000
1. 011 0110 0000 ^3= 1011.0110 = 11.375
五、小数转二进制(参考上面小数是怎么转换的):
我们将十进制的4.5转换成二进制: 100.1
他的科学计数法即:1.001*2^2
即M= 0010 0000 0000 0000 0000 000
E= 127+2=129 = 1000 0001
S=0(正数)
4.5f 二进制表示 0 1000 0001 0010 0000 0000 0000 0000 000
六、代码实现(注意高低位 ,高位在后代码中)
/***将byte数组数据转换成float* @param arr*@return*/public static float bytes2Float(byte[] arr) {int accum = 0;accum = accum | (arr[0] & 0xff) << 0;accum = accum | (arr[1] & 0xff) << 8;accum = accum | (arr[2] & 0xff) << 16;accum = accum | (arr[3] & 0xff) << 24;return Float.intBitsToFloat(accum);}
七、不足之处、烦请各位大佬批评指正。
相关文章:
单精度浮点数与十进制数据相互转换
一、float基础: Float类型占4个字节,也就是32bit,其中最高位是符号位,2~9位是指数位,后边的23bit是数值位.如下所示 大部分数据的二进制形式都可以用科学计数法表示,即1.m*2^n这种形式,只要知道m和n,就能确定一个数值 二、小数位如何转变为二进制: 下面…...
PMP敏捷-4大价值观、12原则
宣言及4大价值观 个体及互动 胜于 流程和工具 以人为本 工作的软件 胜于 完整的文档 以价值为导向 客户合作 胜于 合同谈判 合作共赢 应对变更 胜于 遵循计划 拥抱变化 12原则 工作原则:精益、至简,实现这种原则的方式是“定期反省”。9、10、12 …...
K8S—Helm
一、Helm介绍 helm通过打包的方式,支持发布的版本管理和控制,很大程度上简化了Kubernetes应用的部署和管理。 Helm本质就是让k8s的应用管理(Deployment、Service等)可配置,能动态生成。通过动态生成K8S资源清单文件&a…...
ALSA内部函数调用流程
ALSA内部函数调用流程 一直都有这样的一个疑问 就是在linux系统中我们调用snd_pcm_open后,就不知道alsa内部是怎么运行的了 用户的pcm_open()相当于先对ASoC各个驱动模块startup(),再做hw_params()。 pcm_open()pcm->fd open("/dev/snd/pcm…...
Python正则表达式详解,保姆式教学,0基础也能掌握正则
正则作为处理字符串的一个实用工具,在Python中经常会用到,比如爬虫爬取数据时常用正则来检索字符串等等。正则表达式已经内嵌在Python中,通过导入re模块就可以使用,作为刚学Python的新手大多数都听说”正则“这个术语。 今天来给…...
ChatGPT 接入飞书教程,创建自己的聊天机器人
ChatGPT 接入飞书教程,创建自己的聊天机器人 一、飞书进入开发者平台。点击创建应用。二、打开Aircode,点击创建应用,上面输入名字,下面选择Node.js v16三、配置环境,点击Environments,创建四个变量,全部要大写本教程收集于: AIGC从入门到精通教程 首先,准备三个账号…...
JS生成随机数(多种解决方案)
JS生成随机数 概述 随机数是编程语言中的重要组成部分。在JavaScript中,生成随机数是一项简单的任务。本文将介绍生成随机数的各种方法。 Math.random() Math.random()是JavaScript中生成随机数最常见的方法。该方法返回介于0和1之间的随机数。例如,…...
文件IO 函数 静态库和动态库的创建 5.11
5.11 文件IO函数 1.数据读写 ssize_t read(int fd,void *buf,size_t count); 功能: 从fd对应的文件中 读取前count个字节的数据到buf缓冲区中 头文件: #include <unistd.h> 参数: fd :文件描述符 buf…...
考研日语-详解ている、てある、ていく、てくる用法
目录 一、ている用法 1. 表示现在状态 2. 表示持续动作 3. 表示经验或习惯 4. 表示结果或效果 二、てある用法 1. 表示已经完成的动作 2. 表示现在状态 3. 表示被动 三、ていく用法 1. 表示未来的动作 2. 表示逐渐变化的过程 四、てくる用法 1. 表示过去到现在的…...
Spring Security 6.x 系列【36】授权服务器篇之OpenID Connect 1.0
有道无术,术尚可求,有术无道,止于术。 本系列Spring Boot 版本 3.0.4 本系列Spring Security 版本 6.0.2 本系列Spring Authorization Server 版本 1.0.2 源码地址:https://gitee.com/pearl-organization/study-spring-security-demo 文章目录 1. 前言2. OpenID Connect…...
【计算机视觉 | Pytorch】timm 包的具体介绍和图像分类案例(含源代码)
一、具体介绍 timm 是一个 PyTorch 原生实现的计算机视觉模型库。它提供了预训练模型和各种网络组件,可以用于各种计算机视觉任务,例如图像分类、物体检测、语义分割等等。 timm 的特点如下: PyTorch 原生实现:timm 的实现方式…...
轻博客Plume的搭建
什么是 Plume ? Plume 是一个基于 ActivityPub 的联合博客引擎。它是用 Rust 编写的,带有 Rocket 框架,以及 Diesel 与数据库交互。前端使用 Ructe模板、WASM 和SCSS。 反向代理 假设我们实际访问地址为: https://plume.laosu.ml…...
机器人关节电机PWM
脉冲宽度调制(Pulse width modulation,PWM)技术。一种模拟控制方式 机器人关节电机的控制通常使用PWM(脉冲宽度调制)技术。PWM是一种用于控制电子设备的技术,通过控制高电平和低电平之间的时间比例,实现对电子设备的控制。在机器人关节电机中,PWM信号可以控制电机的…...
MPU6050详解(含源码)
前言:MPU6050是一款强大的六轴传感器,需要理解MPU6050首先得有IIC的基础,MPU6050 内部整合了 3 轴陀螺仪和 3 轴加速度传感器,并且含有一个第二 IIC 接口,可用于连接外部磁力传感器,内部有硬件算法支持. 1…...
Vue入门学习笔记:TodoList(三):实例中的数据、事件和方法
目录: Vue入门学习笔记:TodoList(一):HelloWorld Vue入门学习笔记:TodoList(二):挂载点、模板、实例 Vue入门学习笔记:TodoList(三)&a…...
怎么找到引发回流的JavaScript代码?
要找到引发回流的JavaScript代码,可以使用浏览器的开发者工具中的性能分析器。不同的浏览器有不同的名称和位置,例如Google Chrome的开发者工具中的性能分析器被称为Performance,Firefox的开发者工具中的性能分析器被称为Profiler。 以下是在…...
未来广告策划,转型还是淘汰?
在广告行业呆了十来年了,最近我越来越感觉到广告行业真的是一个需要与时俱进,并且应用场景非常广泛的一个专业。 而且由于这是一个需要创意能力的行业,所以对比于重复性容易被机器以及人工智能所代替的岗位行业来说,广告的可替代…...
【vscode远程开发】使用SSH远程连接服务器 「内网穿透」
文章目录 前言视频教程1、安装OpenSSH2、vscode配置ssh3. 局域网测试连接远程服务器4. 公网远程连接4.1 ubuntu安装cpolar内网穿透4.2 创建隧道映射4.3 测试公网远程连接 5. 配置固定TCP端口地址5.1 保留一个固定TCP端口地址5.2 配置固定TCP端口地址5.3 测试固定公网地址远程 转…...
七天从零实现Web框架Gee - 扩展
到这里前七天的任务已经完成,但我们可以对Gee框架进行一些扩展 补充HTTP请求方法 原作者只实现了 GET, POST 路由添加,其他的 PUT, DELETE 等标准 HTTP 方法未实现,实现方法也很简单,只需在gee.go中增加如下代码 // PUT define…...
什么是土壤水分传感器
土壤水分传感器又称土壤湿度传感器由不锈钢探针和防水探头构成,可长期埋设于土壤和堤坝内使用,对表层和深层土壤进行墒情的定点监测和在线测量。与数据采集器配合使用,可作为水分定点监测或移动测量的工具(即农田墒情检测仪&#…...
drprov.dll文件丢失找不到 免费下载修复方法分享
在使用电脑系统时经常会出现丢失找不到某些文件的情况,由于很多常用软件都是采用 Microsoft Visual Studio 编写的,所以这类软件的运行需要依赖微软Visual C运行库,比如像 QQ、迅雷、Adobe 软件等等,如果没有安装VC运行库或者安装…...
【风电功率预测】到了2026年,企业为什么总输在“最后一公里”?从气象到功率再到电力交易,少赚的钱到底丢在哪
2026年,风电行业已经进入一个非常现实的新阶段。过去,很多企业讨论风电功率预测,核心问题还是“预报准不准”。而到了今天,这个问题虽然仍然重要,却已经不是决定收益高低的唯一变量。真正拉开差距的,是企业…...
DFR0554双芯片显示模块驱动解析:PCA9633与AIP31068协同控制
1. DFR0554 显示模块驱动深度解析:基于 PCA9633 与 AIP31068 的双芯片协同架构 DFR0554 是 DFRobot 推出的一款集成化智能显示模块,其核心并非单一显示控制器,而是由两颗功能互补的专用 IC 协同构成: PCA9633 LED 驱动器 与 A…...
Nunchaku-flux-1-dev技术解析:深入理解其背后的深度学习网络架构
Nunchaku-flux-1-dev技术解析:深入理解其背后的深度学习网络架构 最近在AI编程和图像生成圈子里,FLUX.1 [dev]这个名字被讨论得越来越多。作为其社区衍生版本,Nunchaku-flux-1-dev自然也吸引了大量技术爱好者的目光。大家可能已经体验过它生…...
Apollo自动驾驶系统C++核心模块实战解析——从源码到实现
1. Apollo自动驾驶系统架构全景解析 第一次打开Apollo源码仓库时,我完全被它庞大的代码量震撼到了——超过200万行C代码构成的自动驾驶系统,就像一座精密的机械钟表。但当你拆解它的核心模块后,会发现其架构设计处处体现着模块化和高内聚低耦…...
如何用dashdot打造高颜值服务器监控面板?完整配置教程
如何用dashdot打造高颜值服务器监控面板?完整配置教程 【免费下载链接】dashdot A simple, modern server dashboard, primarily used by smaller private servers 项目地址: https://gitcode.com/gh_mirrors/da/dashdot dashdot是一款现代化的服务器监控面板…...
Java Faker故障排除终极指南:10个常见问题与解决方案完整清单
Java Faker故障排除终极指南:10个常见问题与解决方案完整清单 【免费下载链接】java-faker Brings the popular ruby faker gem to Java 项目地址: https://gitcode.com/gh_mirrors/ja/java-faker Java Faker是Java开发者生成测试数据的终极工具,…...
解决语音合成难题:用QWEN-AUDIO实现高质量、带情绪的TTS
解决语音合成难题:用QWEN-AUDIO实现高质量、带情绪的TTS 1. 语音合成的痛点与突破 传统语音合成技术(TTS)长期面临三大难题:机械感强、缺乏情感表现力、定制成本高。许多开发者尝试过开源解决方案,但往往需要复杂的参数调整才能获得勉强可用…...
机械原理课程设计 洗瓶机机构设计(设计说明书+3张CAD图纸+连杆机构设计软件)
洗瓶机作为工业清洗领域的核心设备,其机构设计的合理性直接影响清洗效率与质量。机械原理课程设计中的洗瓶机机构设计,聚焦于通过连杆机构实现瓶体的连续输送、定位与翻转,确保清洗液均匀覆盖瓶内壁。设计核心在于构建多自由度运动系统&#…...
VideoAgentTrek Screen Filter在运维监控中的应用:自动过滤服务器录屏中的敏感信息
VideoAgentTrek Screen Filter在运维监控中的应用:自动过滤服务器录屏中的敏感信息 想象一下这个场景:你作为运维工程师,刚刚处理完一个棘手的线上故障。为了复盘和分享经验,你需要把整个排查过程的服务器操作录屏发给同事或者上…...
