Math.Pow(等等)实际上是如何工作的

2023-12-10

所以我在谷歌上搜索了很长时间,但几乎什么也没找到。我发现了一些关于 Math.Pow 可能实现的信息this url,但它们不准确,例如这段代码

public static double PowerA(double a, double b)
{
    int tmp = (int)(BitConverter.DoubleToInt64Bits(a) >> 32);
    int tmp2 = (int)(b * (tmp - 1072632447) + 1072632447);
    return BitConverter.Int64BitsToDouble(((long)tmp2) << 32);
}
static void Main(string[] args)
{
    double x = 12.53, y = 16.45;
    Console.WriteLine(Math.Pow(x, y));
    Console.WriteLine(PowerA(x, y));
}

提供输出:

1,15158266266297E+18
8,9966384455562E+17

这么不准确...

我认为它的工作方式就像系列的总和,但我不确定。


pow 通常用以下公式计算:

x^y = exp2(y*log2(x))

功能exp2(x),log2(x)直接实现在FPU。如果你想实施bignums那么它们也可以通过基本运算符使用预先计算的 sqrt-power 表进行评估,例如:

2^1/2, 2^1/4, 2^1/8, 2^1/16, 2^1/32 ...

加快进程

如果您还需要处理负碱基的生根,请参阅以下内容:

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

Math.Pow(等等)实际上是如何工作的 的相关文章

  • 为什么我不能用 `= delete;` 声明纯虚函数?

    Intro 纯虚函数使用通用语法声明 virtual f 0 然而 自 c 11 以来 有一种方法可以显式地传达non existence 特殊 成员函数的 Mystruct delete eg default constructor Q
  • 如何创建可以像 UserControl 一样编辑的 TabPage 子类?

    我想创建一个包含一些控件的 TabPage 子类 并且我想通过设计器来控制这些控件的布局和属性 但是 如果我在设计器中打开子类 我将无法像在 UserControl 上那样定位它们 我不想创建一个带有 UserControl 实例的 Tab
  • 为什么要序列化对象需要 Serialized 属性

    根据我的理解 SerializedAttribute 不提供编译时检查 因为它都是在运行时完成的 如果是这样 那么为什么需要将类标记为可序列化呢 难道序列化器不能尝试序列化一个对象然后失败吗 这不就是它现在所做的吗 当某些东西被标记时 它会
  • 从 MVC 迁移到 ASP.NET Core 3.1 中的端点路由时,具有角色的 AuthorizeAttribute 不起作用

    我正在尝试将我的项目从 UseMVC asp net core 2 2 兼容样式 升级到 UseEndpoint Routing 并且我的所有请求都被重定向到我的验证失败页面 它与声明有关 如果我删除 Authorize Roles Adm
  • 对齐 GridView 中的行值

    我需要在 asp net 3 5 中右对齐 gridview 列中的值 我怎样才能做到这一点
  • C++ 异步线程同时运行

    我是 C 11 中线程的新手 我有两个线程 我想让它们同时启动 我可以想到两种方法 如下 然而 似乎它们都没有按照我的预期工作 他们在启动另一个线程之前启动一个线程 任何提示将不胜感激 另一个问题是我正在研究线程队列 所以我会有两个消费者和
  • 如何从 C# 控制器重定向到外部 url

    我使用 C 控制器作为网络服务 在其中我想将用户重定向到外部网址 我该怎么做 Tried System Web HttpContext Current Response Redirect 但没有成功 使用控制器的重定向 http msdn
  • 当前的 c++ 工作草案与当前标准有何不同

    通过搜索该标准的 PDF 版本 我最终找到了这个链接C 标准措辞草案 http www open std org jtc1 sc22 wg21 docs papers 2012 n3376 pdf从 2011 年开始 我意识到我可以购买最终
  • C 语言中 =+(等于加)是什么意思?

    我碰到 与标准相反 今天在一些 C 代码中 我不太确定这里发生了什么 我在文档中也找不到它 In ancientC 版本 相当于 它的残余物与最早的恐龙骨头一起被发现 例如 B 引入了广义赋值运算符 使用x y to add y to x
  • 即使手动设置显示环境变量后,WSL Ubuntu 也会显示“错误:无法打开显示”

    我在 WSL Ubuntu 上使用 g 我使用 git 克隆了 GLFW 存储库 使用了ccmake命令配置并生成二进制文件 然后使用make在 build 目录中最终创建 a文件 我安装了所有OpenGL相关的库 usr ld 我不记得我
  • 将数据打印到文件

    我已经超载了 lt lt 运算符 使其写入文件并写入控制台 我已经为同一个函数创建了 8 个线程 并且我想输出 hello hi 如果我在无限循环中运行这个线程例程 文件中的o p是 hello hi hello hi hello hi e
  • 在非活动联合成员上使用“std::addressof”是否定义明确[重复]

    这个问题在这里已经有答案了 下面的代码是尝试实现constexpr的版本offsetof在 C 11 中 它可以在 gcc 7 2 0 和 clang 5 0 0 中编译 这取决于申请std addressof工会非活跃成员的成员 这是明确
  • 如何重置捕获像素的值

    我正在尝试创建一个 C 函数 该函数返回屏幕截图位图中每四个像素的 R G 和 B 值 这是我的代码的一部分 for int ix 4 ix lt 1366 ix ix 4 x x 4 for int iy 3 iy lt 768 iy i
  • 如何在c#中的内部类中访问外部类的变量[重复]

    这个问题在这里已经有答案了 我有两个类 我需要声明两个类共有的变量 如果是嵌套类 我需要访问内部类中的外部类变量 请给我一个更好的方法来在 C 中做到这一点 示例代码 Class A int a Class B Need to access
  • 为什么我不应该对不是由 malloc() 分配的变量调用 free() ?

    我在某处读到 使用它是灾难性的free删除不是通过调用创建的对象malloc 这是真的 为什么 这是未定义的行为 永远不要尝试它 让我们看看当您尝试时会发生什么free 自动变量 堆管理器必须推断出如何获取内存块的所有权 为此 它要么必须使
  • 获取 2 个数据集 c# 中的差异

    我正在编写一个简短的算法 它必须比较两个数据集 以便可以进一步处理两者之间的差异 我尝试通过合并这两个数据集并将结果更改放入新的数据集来实现此目标 我的方法如下所示 private DataSet ComputateDiff DataSet
  • System.Runtime.InteropServices.COMException(0x80040154):[关闭]

    Closed 这个问题不符合堆栈溢出指南 help closed questions 目前不接受答案 我在 C 项目中遇到异常 System Runtime InteropServices COMException 0x80040154 检
  • 有没有一种简单的方法可以让 Visual Studio 2015 使用特定的 ToolsVersion?

    使用特定版本构建项目或解决方案时msbuild我可以使用以下命令选择早期的 net 工具链 toolsversion or tv switch C Program Files x86 MSBuild 14 0 bin msbuild tv
  • 使用 C# 从 DateTime 获取日期

    愚蠢的问题 给定日期时间中的日期 我知道它是星期二 例如我如何知道它的 tue 2 和 mon 1 等 Thanks 您正在寻找星期几 http msdn microsoft com en us library system datetim
  • 用于 C# XNA 的 Javascript(或类似)游戏脚本

    最近我准备用 XNA C 开发另一个游戏 上次我在 XNA C 中开发游戏时 遇到了必须向游戏中添加地图和可自定义数据的问题 每次我想添加新内容或更改游戏角色的某些值或其他内容时 我都必须重建整个游戏或其他内容 这可能需要相当长的时间 有没

随机推荐

  • 防止地址栏在移动浏览器中隐藏

    我目前正在开发一个水平布局的网站 所有元素都是position absolute 使用javascript 它们的大小是通过 window innerHeight 计算的 我的问题是 尽管元素不高于窗口的高度 但我可以向下滚动 地址栏的高度
  • 使用 magento 命令连接自定义表

    我一直在尝试使用 magento 的命令连接两个自定义表 搜索后我发现这段通用代码 collection Mage getModel module model name gt getCollection collection gt getS
  • 使用 iOS 异步上传音频文件

    有没有办法将音频文件异步上传到我的服务器 我已经使用 NSURLConnection 类同步实现了它 也许你也可以给我一个简短的代码示例 Thanks 你绝对必须使用ASIHttp请求 它非常简单 它是所有 iOS 系统上最受欢迎的库 只需
  • 对齐基于网格的表单元素及其标签

    我们有一个要求 将表单元素放置在 3 个单独的列中 标签可以有不同数量的文本 表单元素主要是输入框和文本区域 设计者希望确保输入元素正确垂直对齐 我们无法使用特定的填充 边距 因为这在应用程序本地化时不灵活 请看下图 第一行显示我们遇到的问
  • Windows批处理文件中的git grep和xargs?

    我正在尝试创建一个 Windows 友好的 bat实施以下 sh脚本 上面几行都很好 只需添加SET和cd没问题 git grep 没问题 但是 xargs不是 那会是什么git grep xargs逻辑看起来像 bat INFINITY
  • 用另一个布局替换 ListView 行 onClick

    我有一个只有 TextView 的 ListView 我想要一个实现 如果我单击 ListView 行 则应出现带有替换按钮的编辑文本 并且无论我在该编辑文本中键入并单击替换 列表行都应更新 我面临的主要问题是在列表行上夸大布局 有人能告诉
  • 使用SQLPlus时如何设置Oracle绑定变量?

    使用 SQLPlus 时如何设置 Oracle 绑定变量 Example SELECT orders order no FROM orders WHERE orders order date BETWEEN v1 AND v2 我如何设置日
  • 属性“...”没有初始值设定项,并且未在构造函数中明确分配

    在我的 Angular 应用程序中 我有一个组件 import MakeService from services make service import Component OnInit from angular core Compone
  • 使用 Vim 自动插入“花式”注释

    我喜欢在我的 C 代码中添加这样的注释 Blah 但我厌倦了输入所有这些星号 而且复制 粘贴也很烦人 我想知道我是否可以用 Vim 创建一个宏 这样如果我按 例如 CTRL L 它会自动在我的代码中插入该结构并将光标对齐在中间 实际注释所在
  • bash 中 =~ 运算符支持什么正则表达式语法?

    我发现我可以使用 运算符而不是expr我的 4 2 10 1 BASH 中的命令 它比 在命令内 快得多expr这个事实在大量重复的循环中可能很重要 我能够使用正则表达式的大部分元字符 但不是全部 例如 我可以检查一个字符串是否精确匹配 3
  • 为什么 Node.js 脚本控制台在 Windows 8 中立即关闭?

    我已经尝试了几乎所有我能找到的脚本示例 每个样本都会打开终端一瞬间 即使输入输入后 它也会关闭 这是正常的吗 var rl require readline var prompts rl createInterface process st
  • Scala classOf 用于类型参数

    我正在尝试使用 scala java 创建一个用于对象更新的通用方法 但我无法获取类型参数的类 这是我的代码 object WorkUnitController extends Controller def updateObject T t
  • Mysql将行显示为列[重复]

    这个问题在这里已经有答案了 我想将行显示为列 这是名为 Term 的 mysql 表 Name Year HTML CSS Js Year1 2013 08 30 90 70 70 Year2 2014 08 30 100 65 80 Ye
  • PDFView setNeedsDisplay:YES 在 MacOS Sierra 10.12 上不起作用

    我有用 PDFView setNeedsDisplay YES 让 PDF 查看重画 它在 OSX 10 9 10 11 上运行得很好 但是 除非我放大或缩小 PDF 页面 否则它不起作用 有没有其他方法可以立即重绘 代码如下 NSRect
  • sed 编辑 csv 文件中的特定列和行

    我正在开发一个项目 需要编辑 csv 文件的特定列和行 我已成功找到正确的行 获取行号 甚至将特定列更新为标准输出 但不在 csv 文件中 我遇到的问题是将它们放在一起并让 sed 更新文件中的值 以下是 csv 中的值的示例 9847 3
  • PHP:exec(svn commit) 不返回任何不工作的错误

    目前我正在用 php 将文件写到一个目录中 我添加该目录 工作正常 然后当我尝试执行 svn commit 时 它不起作用也不返回任何类型的错误代码 有人对此有任何想法吗 tmp exec cd this gt build location
  • code igniter 模块化扩展 - MX_Router::_set_default_controller() 的访问级别必须是公共的(如 CI_Router 类中一样)

    我安装了流行的模块化扩展 HMVC https bitbucket org wiredesignz codeigniter modular extensions hmvc 并使用 codeigniter 2 2 2 进行设置BUT当一切正常
  • Heroku:将 NewRelic 与 heroku 部署结合使用:war 方法

    Heroku允许选择直接部署一个Java war 文件使用heroku deploy war 在这种情况下 Procfile 由heroku 自动管理 一 如何使用NewRelic有这样的设置吗 Heroku DevCenter 上 New
  • EditText setError() 带图标但不带弹出消息

    I want to to have some validation for my EditText wherein I want to show icon that comes when you put editText setError
  • Math.Pow(等等)实际上是如何工作的

    所以我在谷歌上搜索了很长时间 但几乎什么也没找到 我发现了一些关于 Math Pow 可能实现的信息this url 但它们不准确 例如这段代码 public static double PowerA double a double b i