执行期间检测下溢

2024-02-18

有没有办法在执行过程中自动检测下溢?

具体来说,我认为应该有一个编译器选项来生成代码,在可能导致下溢和类似错误的数学运算之后立即检查它们。

我说的是 G++ 编译器。


C99/C++11 具有浮点控制函数(例如fetestexcept)和定义的标志(包括FE_UNDERFLOW),这应该让您可以合理地移植检测浮点下溢(即使用任何支持这些的编译器/库)。

虽然它们不那么便携,但 gcc 有一个feenableexcept这将允许您设置捕获的浮点异常。当您启用的异常之一触发时,您的程序将收到SIGFPE signal.

至少在大多数硬件上,没有等效的整数运算——下溢仅产生 2 的补码(或其他)结果,并(例如)设置标志(例如进位和符号位)来表示发生了什么。 C99/C++11 确实有一些针对整数溢出之类的标志,但我不认为它们得到了广泛的支持。

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

执行期间检测下溢 的相关文章

随机推荐

  • Ruby代码美化,将长指令拆分为多行

    我们如何编写以下语句以提高可读性 Promotion joins category where lft gt and rgt lt c lft c rgt joins shops where promotions per shops gt
  • 如何检查Dotnet事务是否回滚?

    如何检查 dotnet 交易是否已关闭 你的标题问的是一件事 你的问题问的是另一件事 所以 我同意你的标题 如果想知道事务是否回滚或者设置为仅回滚 可以查看 transaction WasRolledBack true if transac
  • SSRS:仅为当前登录的用户提取报告

    我需要能够根据登录人员提取报告 例如 在一组销售人员中 如果鲍勃进入此报告并单击 销售人员 下拉列表 我需要他只能将鲍勃视为可用的销售人员 而不是其他任何人 我通过使用解决了这个问题 User UserIDSSRS 中的函数并且运行良好 我
  • 如何在 Acrobat Javascript 中编写文本文件

    我正在使用 acrobat XI 我尝试过输出这样的文本文件 var cMyC abc var doc this createDataObject cName test txt cValue cMyC this exportDataObje
  • 在 Ruby 中初始化类对象变量

    例如我创建了一个类 class Result min 0 max 0 def initialize min max max min min max max max end end result Result new 1 10 result
  • 配置 LDAP 时出现 Berkeley DB 不匹配错误

    我正在配置 OPENLDAP 2 4 35 在 Redhat Linux 上 我已经安装了 Berkley DB 4 8 30 作为先决条件 我还检查了 OPENLDAP 的 README 文件中的版本兼容性 其中显示 SLAPD BDB
  • 在postgresql中将两个select语句添加到一个insert into语句中

    我通过以下方式制作了一个临时表 create temporary table return table p1 BIGINT p2 VARCHAR 45 p3 VARCHAR 45 p4 VARCHAR 45 p5 VARCHAR 45 p6
  • 确定插入符何时到达输入框的末尾

    我已经发现这个问题 https stackoverflow com questions 263743 how to get cursor position in textarea它提供了一种计算文本或输入框中插入符号的确切位置的解决方案 就
  • 如何在 Google colab 中循环播放音频

    我试图在 google colab 中循环运行音频 但它没有给 mi 任何输出 from gtts import gTTS from IPython display import Audio for voice in Aniket sach
  • 在 VR 中单击 inputField 时打开键盘(Oculus Quest 2 和 XRIT)

    我目前正在使用 Unity 为 oculus quest 2 开发一个小型应用程序 我创建了一个画布 在其中添加了一个按钮和一个输入字段 通过使用 XR 交互工具包 我可以使用两个控制器单击按钮或输入字段 但是 仍然无法在输入字段中输入任何
  • 如何在 Android 中使用双三次插值在画布上绘制和缩放位图?

    我想在画布上绘制比实际尺寸更大的位图 我可以使用 canvas drawBitmap bitmap null destRect null 但是 如果源图像比目标矩形小得多 那么质量就会很差 因为结果会像素化 如何使用双线性或双三次重采样绘制
  • 基于其他规则应用 CSS 规则 - RTL 特定样式

    推介会 我正在尝试建立一个可用于多种文化 具有不同阅读方向的网站 为此 我只需添加dir rtl 我的根 HTML 元素上的属性 我的问题是 我有一些特定于一个方向或另一个方向的 CSS 规则 大多数情况下是边距或填充 尝试使用属性选择器失
  • 编码 - codePointCount 和 length 之间的结果不同

    我发现了一个棘手的地方 但找不到任何答案为什么会发生这种情况 主要问题是字符串有多长 它是否包含一个或两个字符 Code public class App public static void main String args throws
  • 如何在 Travis CI 中使用 python-openbabel?

    我使用 Travis CI 作为毒理学绘图项目的一部分 对于这个项目 我需要 python openbabel 作为依赖项 因此 我已将 apt get 安装程序添加到 travis yml 文件中 如下所示 已删除注释 language
  • 在matlab中计算闭合曲线(或多边形)的曲率

    考虑以下几点 x 1 34 0 92 0 68 0 25 0 06 0 34 0 49 0 72 0 79 0 94 1 35 0 35 0 54 0 68 0 84 1 20 1 23 1 32 1 34 y 0 30 0 43 0 90
  • 如何快速混合 RGBA 无符号字节颜色?

    我正在使用 c 我想使用以下代码进行 alpha 混合 define CLAMPTOBYTE color if color 255 color BYTE color gt gt 31 else color BYTE color define
  • 创建DIBection失败

    BITMAPINFO bmi memset bmi 0 sizeof BITMAPINFO bmi bmiHeader biSize sizeof BITMAPINFOHEADER bmi bmiHeader biWidth m pImg
  • NOT EXISTS 和 COUNT(*) 之间的区别

    我在两个我认为等效的语句之间得到了不同的响应 SELECT COUNT vs NOT EXISTS 在大约 50 次执行中的 49 次中 这两个语句的行为相同 但有时却不然 我的猜测是 这些语句处理锁定页面或处理更 遥远 的事情的方式之间存
  • 将到期日期格式化为 mm/yy 格式

    您好 我正在编写一个编辑文本 其中我想要 MM YY 格式的信用卡到期日期 我要实现的算法如下 如果用户输入 2 到 9 之间的任何内容 我将文本输入更改为 02 到 09 如果用户输入 1 那么我等待下一个数字并检查 int 值月份是否小
  • 执行期间检测下溢

    有没有办法在执行过程中自动检测下溢 具体来说 我认为应该有一个编译器选项来生成代码 在可能导致下溢和类似错误的数学运算之后立即检查它们 我说的是 G 编译器 C99 C 11 具有浮点控制函数 例如fetestexcept 和定义的标志 包