news 2026/8/28 7:19:45

31、伪浮点数的原理、运算及误差分析

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
31、伪浮点数的原理、运算及误差分析

伪浮点数的原理、运算及误差分析

1. 伪浮点数基础示例

伪浮点数是一种特殊的数值表示方式,下面通过几个例子来理解。

首先,以四分之一块馅饼为例,分子是 1,分母已经是 2 的幂次方。可以用如下结构体表示:

struct sFakeFloat oneFourth = {1, 2};

负的移位值会改变移位的方向,比如数字 4 可以这样表示:

struct sFakeFloat four = {1, -2}; floatingPointValue = four.num >> shift ==> 1/(2(-2)) ==> 1 * 22 ==> 4

伪浮点数还能处理比通常 32 位(或其他分子大小)所能存储的更大的数,但结果的精度会比使用更大的变量时低。例如,要存储 10000000001,可将其除以 8 以适应有符号的 32 位整数:

struct sFakeFloat notTenBillionOne = { 1250000000, -3 };

不过,虽然这个值与正确值的误差在一百亿分之一以内,但最后一位数字丢失了,结果仅为 100 亿。

2. 精度问题

在结构体中,可以使用 24 位的分子和 8 位的分母移位值。虽然这样能将所有数据存放在一个方便的 32 位变量中

版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/8/27 1:24:42

GeoJSON.io 地理数据编辑工具完全指南

GeoJSON.io 地理数据编辑工具完全指南 【免费下载链接】geojson.io A quick, simple tool for creating, viewing, and sharing spatial data 项目地址: https://gitcode.com/gh_mirrors/ge/geojson.io 想要快速处理地理空间数据却苦于专业软件的复杂性?GeoJ…

作者头像 李华
网站建设 2026/8/28 18:19:40

Kickstarter Android项目架构深度解析与开发实践指南

Kickstarter Android项目架构深度解析与开发实践指南 【免费下载链接】android-oss Kickstarter for Android. Bring new ideas to life, anywhere. 项目地址: https://gitcode.com/gh_mirrors/an/android-oss 在Android开发实践领域,Kickstarter开源项目为我…

作者头像 李华
网站建设 2026/8/27 2:27:16

终极指南:如何快速掌握Ketcher分子绘图工具

终极指南:如何快速掌握Ketcher分子绘图工具 【免费下载链接】ketcher Web-based molecule sketcher 项目地址: https://gitcode.com/gh_mirrors/ke/ketcher 作为化学研究领域的重要助手,Ketcher分子绘图工具正在革命性地改变科学家们创建和编辑分…

作者头像 李华
网站建设 2026/8/28 19:37:09

Android ROM定制终极指南:10个boot镜像编辑高级技巧

Android ROM定制终极指南:10个boot镜像编辑高级技巧 【免费下载链接】Android_boot_image_editor Parsing and re-packing Android boot.img/vbmeta.img/payload.bin, supporting Android 13 项目地址: https://gitcode.com/gh_mirrors/an/Android_boot_image_edi…

作者头像 李华
网站建设 2026/8/28 18:06:04

一款适用于 WPF 和 AvaloniaUI 的可定制颜色选择器控件

前言今天大姚给大家分享一款适用于 WPF 和 AvaloniaUI 的可定制颜色选择器控件:ColorPicker。项目介绍ColorPicker 是一款适用于 WPF 和 AvaloniaUI 的可定制颜色选择器控件,支持 RGB、HSV、HSL 等多种色彩模式,能够轻松集成到你的 .NET 桌面…

作者头像 李华
网站建设 2026/8/27 22:28:03

.NET微信网页开发之使用微信JS-SDK自定义微信分享内容

第一步、微信JS-SDK的使用步骤,配置信息的生成获取讲解 关于JS-SDK的使用步骤和timestamp(时间戳),nonceStr(随机串),signature(签名),access_token(接口调用凭据)生成获取的详细说明在这里。 全面的.NET微信网页开发之JS-SDK使用…

作者头像 李华