4个字节怎么能存储这么大的值3.4e38

2023-12-12

与 32 位一样,我们只能存储 2^32 位数据。在C语言中,我们如何存储这么大的值3.4e38。我无法理解其背后的机制。


在 IEEE-754 32 位二进制浮点格式中,32 位用作:

  • 一位符号字段,s.
  • 八位指数字段,e.
  • 23 位有效数(小数)字段,f.

这些字段编码值:

  • 如果所有位都打开e and f非零,该值为 NaN(非数字)。

  • 如果所有位都打开e and f为零,则该值为 +Infinity(无穷大),如果s是 0 且 -∞ 如果s is 1.

  • If e is zero, the value is (-1)s(0+f•2-23)•2-126.

  • Otherwise, the value is (-1)s(1+f•2-23)•2e-127.

关于此的一些注意事项:

  • (-1)s sets the sign. This expression is +1 if s is zero and -1 if s is one.
  • 第三种情况包括零和所谓的次正规数。在这种情况下,分数字段前面会添加一个额外的零位。
  • 第四种情况是正常情况。它包括大部分浮点值。在这种情况下,分数字段前面会添加一个额外的一位。

计算机硬件(或软件)以进行算术运算的方式操纵这些位。例如,当执行加法时,硬件(实际上)会移位有效数位以调整指数差异,然后添加有效数,然后舍入以适合可用的位。此外,如果加法使尾数大于可用位,则将其右移(以使其适合),并且指数增加 1。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

4个字节怎么能存储这么大的值3.4e38 的相关文章

随机推荐

  • 在Python中使用字符串作为注释

    我目前正在阅读使用字符串作为注释的 python 代码 例如 这是一个函数 def xyz x This is a function that does a thing Pretty cool right return 0 使用字符串作为注
  • VBA/Excel 中行和列范围偏移的最大值是多少?

    我正在使用 microsoft excel 2003 执行以下 If 语句时收到 应用程序定义或对象定义错误 如果 Range MyData CurrentRegion Offset i 0 Resize 1 1 Value Range M
  • 获取 macOS 上的 CPU 使用百分比

    我是 Objective C 的初学者 我决定尝试编写一些简单的应用程序 所以我尝试制作一个可以测量 CPU 使用率等的应用程序 有没有一种简单的方法可以在 Cocoa 应用程序中使用 Objective C 获取 CPU 使用百分比等信息
  • 理解 zend 中的网格布局

    我对 zend 中的表单设计有点困惑 我知道我的表单类中有字段 并且外观应该在视图中完成 在几乎是纯 html 的索引视图中 我没有问题 但在显示我的表单的添加和编辑视图中 我在更改外观时遇到问题 我有一个如下的视图脚本 h1 h1
  • 正则表达式替换除数字和小数点之外的所有内容

    我有一个文本字段 只需要保留文本或小数 这是我当前用来替换除数字和小数点之外的所有内容的代码 问题是 我无法找出可以识别其他所有内容的正则表达式 document getElementById target value newVal rep
  • javax.faces.FacesException:java.lang.ClassCastException:java.lang.String无法转换为javax.faces.component.UIComponent

    我的 Java EE Web 应用程序是与 Glassfish 2 1 配合良好 现在我想迁移到 Glassfish 3 1 1 我已按照提供的修改进行操作here 我对 richfaces 的依赖如下
  • Python 脚本无法通过 TextMate 运行,但在 IDLE 和 Eclipse 中正常

    我为家庭作业编写了以下内容 它在运行 Python 3 的 IDLE 和 Eclipse 中运行良好 然而 我尝试使用新的第 1 行 我在此处找到的 从 TextMate 运行它 以将其指向 Mac 上的 Python 3 它似乎正在运行
  • ActionView::MissingTemplate:缺少模板

    当 Google 机器人尝试访问我的其中一个控制器时 我收到此错误消息 ActionView MissingTemplate Missing template channels show application show with loca
  • 如何将参数传递给 WCF post 方法(Restful 服务)

    我正在开发基于 WCF 休息的服务 我在我的服务中编写了 Get 和 Post 方法 当我输入 URL JSON 格式 时 Get 方法能够工作 获取数据 问题是 当我尝试对 POST 方法执行相同操作时 URL 会导航到其他页面 找不到页
  • 调用 onConnected 函数后,GoogleApiClient 抛出“GoogleApiClient 尚未连接”

    所以我发现了一些关于 GoogleApiClient 对我来说不是很清楚的东西 谷歌API客户端有一个函数叫做已连接当客户端运行时运行连接的 一定 我有自己的函数 称为 开始位置聆听这最终是在 GoogleApiClient 的 onCon
  • 为什么我使用 UNUserNotificationCenter 创建的本地通知没有显示在屏幕的右上角?

    运行下面的代码不会在屏幕右上角显示通知 作为横幅或警报 通知is shown在通知中心 我确保我的系统上禁用了 请勿打扰 我还尝试了系统偏好设置 gt 通知 gt 我的应用程序名称中的 横幅 和 警报 设置 Source import Co
  • 如何将图像分成两部分? [关闭]

    很难说出这里问的是什么 这个问题模棱两可 含糊不清 不完整 过于宽泛或言辞激烈 无法以目前的形式合理回答 如需帮助澄清此问题以便重新打开 访问帮助中心 我是安卓初学者 我想将位图图像分成块 然后以相同的方式显示图像 但分开 Edit 这段代
  • 我可以使用 google api 对文件设置锁定吗?

    当我查看Gdrive时 还有一个fuse客户端来挂载Gdrive 我想知道 当通过这个客户端修改Gdrive上的文件时 该文件是否被 锁定 或以任何其他方式设置为 正在使用 以防止其他人修改互联网上的 原始 文件 我还没有找到任何与此有关的
  • Bluez 5 未知连接标识符

    我有一个运行最新 Raspbian 的 Raspberry Pi 3 并且我有 从 5 23 升级了 bluez 至 5 43 我正在尝试连接到 BLE 以 2 秒间隔发布广告的设备 我写了一些基于的代码 在 gatttool 上并尝试连接
  • 尼黑阈值处理

    我正在尝试实现 niblack 阈值算法 该算法使用以下公式 pixel pixel gt mean k standard deviation object background 其中 k 的标准值为 0 有人可以告诉我如何在matlab中
  • window.onunload 仅在 Firefox 中关闭选项卡时触发,而不是整个浏览器关闭

    UPDATE 因此 在阅读了您的两个答案后 我意识到没有可靠的方法来确定浏览器窗口何时关闭 本来我打算在页面关闭时用它来解锁数据库中的一条记录 基本上 当用户加载页面时 它访问的记录会锁定 然后在页面关闭时解锁 关于如何以不同 更好的方式做
  • 从 Eclipse 启动 Tomcat 时出现“SetPropertiesRule”警告消息 [重复]

    这个问题在这里已经有答案了 当我从 Eclipse 3 4 启动 Tomcat 6 0 18 时 我收到以下消息 日志中的第一个消息 警告 SetPropertiesRule 服务器 服务 引擎 主机 上下文 将属性 源 设置为 org e
  • 在块矩阵中排列 numpy 数组

    我有 3 个 numpy 数组A B and C 为了简单起见 我们假设它们都是形状的 n n 我想将它们排列为块矩阵 A B B t C where B t应表示转置B 当然 我可以通过一系列串联来做到这一点 top row np con
  • Maven Surefire 找不到 ForkedBooter 类

    最近来到一个新项目 我正在尝试编译我们的源代码 昨天一切都很好 但今天却是另一回事了 每次我跑步的时候mvn clean install在模块上 一旦达到测试 它就会崩溃并出现错误 INFO maven surefire plugin 2
  • 4个字节怎么能存储这么大的值3.4e38

    与 32 位一样 我们只能存储 2 32 位数据 在C语言中 我们如何存储这么大的值3 4e38 我无法理解其背后的机制 在 IEEE 754 32 位二进制浮点格式中 32 位用作 一位符号字段 s 八位指数字段 e 23 位有效数 小数