返回 2 的幂的最快算法是什么?

2024-01-03

给定 n = 2^k,假设 n 是 32 位整数,使用 C/C++ 按位如何找到 k?


GCC has __builtin_clz http://gcc.gnu.org/onlinedocs/gcc-4.3.4/gcc/Other-Builtins.html它会转换为 x86/x64 上的 BSR、ARM 上的 CLZ 等,并在硬件未实现该指令时模拟该指令。
Visual C++ 2005 及更高版本有_BitScanReverse http://msdn.microsoft.com/en-us/library/fbxyd7zd%28v=VS.80%29.aspx.

使用这些函数,你可以得到你的 k

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

返回 2 的幂的最快算法是什么? 的相关文章

  • 如何在C++中实现模板类协变?

    是否可以以这样一种方式实现类模板 如果模板参数相关 一个对象可以转换为另一个对象 这是一个展示这个想法的例子 当然它不会编译 struct Base struct Derived Base template
  • 嵌入式系统中的malloc [重复]

    这个问题在这里已经有答案了 我正在使用嵌入式系统 该应用程序在 AT91SAMxxxx 和 cortex m3 lpc17xxx 上运行 我正在研究动态内存分配 因为它会极大地改变应用程序的外观 并给我更多的力量 我认为我唯一真正的路线是为
  • fgets() 和 Ctrl+D,三次才能结束?

    I don t understand why I need press Ctrl D for three times to send the EOF In addition if I press Enter then it only too
  • SSH 主机密钥指纹与模式 C# WinSCP 不匹配

    我尝试通过 WinSCP 使用 C 连接到 FTPS 服务器 但收到此错误 SSH 主机密钥指纹 与模式不匹配 经过大量研究 我相信这与密钥的长度有关 当使用 服务器和协议信息 下的界面进行连接时 我从 WinSCP 获得的密钥是xx xx
  • C# 中值类型和引用类型有什么区别? [复制]

    这个问题在这里已经有答案了 我知道一些差异 值类型存储在堆栈上 而引用类型存储在托管堆上 值类型变量直接包含它们的值 而引用变量仅包含对托管堆上创建的对象位置的引用 我错过了任何其他区别吗 如果是的话 它们是什么 请阅读 堆栈是一个实现细节
  • 如何针对 Nancy 中的 Active Directory 进行身份验证?

    这是一篇过时的文章 但是http msdn microsoft com en us library ff650308 aspx paght000026 step3 http msdn microsoft com en us library
  • HttpClient 像浏览器一样请求

    当我通过 HttpClient 类调用网站 www livescore com 时 我总是收到错误 500 可能服务器阻止了来自 HttpClient 的请求 1 还有其他方法可以从网页获取html吗 2 如何设置标题来获取html内容 当
  • 为什么模板不能位于外部“C”块内?

    这是一个后续问题一个答案 https stackoverflow com questions 4866433 is it possible to typedef a pointer to extern c function type wit
  • Windows 窗体不会在调试模式下显示

    我最近升级到 VS 2012 我有一组在 VS 2010 中编码的 UI 测试 我试图在 VS 2012 中启动它们 我有一个 Windows 窗体 在开始时显示使用 AssemblyInitialize 属性运行测试 我使用此表单允许用户
  • 是否有比 lex/flex 更好(更现代)的工具来生成 C++ 分词器?

    我最近将源文件解析添加到现有工具中 该工具从复杂的命令行参数生成输出文件 命令行参数变得如此复杂 以至于我们开始允许它们作为一个文件提供 该文件被解析为一个非常大的命令行 但语法仍然很尴尬 因此我添加了使用更合理的语法解析源文件的功能 我使
  • 网络参考共享类

    我用 Java 编写了一些 SOAP Web 服务 在 JBoss 5 1 上运行 其中两个共享一个类 AddressTO Web 服务在我的 ApplycationServer 上正确部署 一切都很顺利 直到我尝试在我的 C 客户端中使用
  • AccessViolationException 未处理

    我正在尝试使用史蒂夫 桑德森的博客文章 http blog stevensanderson com 2010 01 28 editing a variable length list aspnet mvc 2 style 为了在我的 ASP
  • 在 URL 中发送之前对特殊字符进行百分比编码

    我需要传递特殊字符 如 等 Facebook Twitter 和此类社交网站的 URL 为此 我将这些字符替换为 URL 转义码 return valToEncode Replace 21 Replace 23 Replace 24 Rep
  • 已过时 - OpenCV 的错误模式

    我正在使用 OpenCV 1 进行一些图像处理 并且对 cvSetErrMode 函数 它是 CxCore 的一部分 感到困惑 OpenCV 具有三种错误模式 叶 调用错误处理程序后 程序终止 Parent 程序没有终止 但错误处理程序被调
  • 如何构建印度尼西亚电话号码正则表达式

    这些是一些印度尼西亚的电话号码 08xxxxxxxxx 至少包含 11 个字符长度 08xxxxxxxxxxx 始终以 08 开头 我发现这个很有用 Regex regex new Regex 08 0 9 0 9 0 9 0 9 0 9
  • GDK3/GTK3窗口更新的精确定时

    我有一个使用 GTK 用 C 语言编写的应用程序 尽管该语言对于这个问题可能并不重要 这个应用程序有全屏gtk window与单个gtk drawing area 对于绘图区域 我已经通过注册了一个刻度回调gtk widget add ti
  • 方法参数内的变量赋值

    我刚刚发现 通过发现错误 你可以这样做 string s 3 int i int TryParse s hello out i returns false 使用赋值的返回值是否合法 Obviously i is but is this th
  • 如何使用 ReactiveList 以便在添加新项目时更新 UI

    我正在创建一个带有列表的 Xamarin Forms 应用程序 itemSource 是一个reactiveList 但是 向列表添加新项目不会更新 UI 这样做的正确方法是什么 列表定义 listView new ListView var
  • 期望最大化算法的数值示例[重复]

    这个问题在这里已经有答案了 由于我不确定给出的公式 有人可以提供 EM 算法的简单数字示例吗 一个非常简单的具有 4 或 5 个笛卡尔坐标的坐标就可以了 那这个呢 http en wikibooks org wiki Data Mining
  • 不同类型的指针可以互相分配吗?

    考虑到 T1 p1 T2 p2 我们可以将 p1 分配给 p2 或反之亦然吗 如果是这样 是否可以不使用强制转换来完成 或者我们必须使用强制转换 首先 让我们考虑不进行强制转换的分配 C 2018 6 5 16 1 1 列出了简单赋值的约束

随机推荐

  • 根据C++模板类型调用不同的C函数

    我的问题如下 我有一个 C 库 其中包含每个函数的多个版本 具体取决于它们所使用的数据类型 例如 void add double a double b double c and void sadd float a float b float
  • 如何设置 QComboBox 宽度以适合最大的项目?

    我有一个QComboBox我充满了QString using comboBox gt addItem someString 当我启动 GUI 应用程序时 QComboBox始终为 70 即使最小的项目要大得多 如何动态设置a的宽度QComb
  • 当我浏览 http://localhost:8004/elmah.axd 时,它会生成 404 错误

    当我浏览时http localhost 8004 elmah axd它显示应用程序中发生的错误 但也会生成 404 错误 我该如何停止这个 404 错误 404错误的详细信息是 System Web HttpException 0x8000
  • Visual Studio 2010 条件引用

    我们这里有多个产品共享一些公共库 这些库是单独解决方案的一部分 因此它们可以由TFS独立构建 但问题是在开发过程中 必须修改公共库 将其编译为二进制文件 将其复制到公共位置 编译产品解决方案 为了避免这种情况 我想知道是否可以有条件引用 因
  • 查看控制器 EXTJS 4 中的参考

    我无法在控制器中获取组合框值 组合框视图的getter方法返回 function i return this constructor apply this arguments null 而不是查看对象实例 如果我使用 var combo t
  • 未找到 QWebView 库

    当我尝试添加QWebFrame 库 我找不到它 并且答复是没有这样的文件或目录 所以知道为什么这个库不存在 我按如下方式添加库 include
  • 在 Curses 模式下,stdout 和 stderr 去哪里?

    当curses处于活动状态时 stdout和stderr去哪里 import curses sys def test streams print stdout print gt gt sys stderr stderr def curses
  • ReactJS/Express Axios POST 返回 404,来自 Postman

    我不知道我在这里做错了什么 POST 方法适用于 Postman 但不适用于 React 前端 users js api users login route POST api users login desc Login user Retu
  • 如何在不知道c中大小的情况下迭代数组[重复]

    这个问题在这里已经有答案了 我有一个指向 C 中数组的指针 我想对其进行迭代 但我不知道其大小 int array 我不确定应该如何进行 我想我应该尝试通过以下方式找到尺寸 int array size sizeof array sizeo
  • 在javascript中从剪贴板抓取部分数据

    我复制了一个大约一百万行的 Excel 表格 当我查看系统上的剪贴板时 它似乎包含大约 250MB 的数据 但是 我only需要从中获取样式信息 例如 整个数据的大小 远 不到 1MB 有没有办法像读取文件或流一样读取剪贴板 以便我可以执行
  • 时髦的 jQuery mouseleave 行为

    我有一个类似菜单的下拉容器 通过绑定 mouseleave 事件来隐藏 div div
  • 如何获取变换/旋转的 SVG 路径点

    我通过设置属性 transform rotate 45 旋转了 SVG 路径元素 现在我如何获得旋转的 SVG 路径点 当我检查属性 d 时 它仍然显示原始点 未旋转 如果您通过 path getPointAtLength 获得点 则需要将
  • 寻找包装在用户定义的 SQL 函数中包装的外部 SQL 存储过程中的任何 OS/400 API 的工作示例

    目前有两个问题 1 下面的示例使用外部 SQL 存储过程包装 OS 400 API 该存储过程是 SQL 用户定义的表函数中的进一步包装器 编译和运行都没有错误 但当传递 作为作业名称 即当前作业 时 它会返回作业信息的空白和零 任何有关原
  • 如何控制 Firefox 中表格单元格的溢出?

    我有一个表格 希望第一列有一个垂直滚动条 这在 Chrome IE9 iPad 上的 Safari 中有效 但在 Firefox 中无效 为什么不 我究竟做错了什么 HTML table tbody tr td class col1 div
  • 使用 withColumn 从查找表动态添加新列

    我将 Spark sql 2 4 1v 与 Java 8 结合使用 我有一个场景 需要从查找表中动态添加列 我有带列的数据框 A B C X Y Z 当少数 原始 列 例如 A B C 值为 null 时 我需要采用 替换列 例如 X Y
  • 返回上一个片段无法正常工作

    我正在使用导航抽屉 当我选择一个项目时 它会正确地将前一个片段替换为我选择的片段 但是如果我打开另一个片段 然后单击后退按钮 它将转到上一个活动而不是上一个活动片段 这样做有什么问题吗 private void selectItem int
  • 另一个 getView 被多次调用

    我的每一项ListView包含一个ImageView and a TextView 这将填充远程信息 我得到了一个 URLImageView 因此我开始AsyncTask下载图像并调用setImageBitmap与下载的位图 这一切进展顺利
  • 导入 Apex 时出现“UnencryptedCookieSessionFactoryConfig”错误

    我正在尝试使用 Apex 每当我尝试导入它 或涉及它的任何内容 时 我都会得到以下回溯 Traceback most recent call last File
  • 以编程方式激活 UISearchBar 会阻止用户与其交互

    我在导航控制器内有一个简单的表格视图 工具栏可见 工具栏上有一个搜索按钮 表格视图的表头视图设置为我的UISearchBar 如果我向上滚动表格视图 然后点击搜索栏将其激活 一切都会正常发生 但是 如果我点击搜索按钮 以编程方式激活搜索栏
  • 返回 2 的幂的最快算法是什么?

    给定 n 2 k 假设 n 是 32 位整数 使用 C C 按位如何找到 k GCC has builtin clz http gcc gnu org onlinedocs gcc 4 3 4 gcc Other Builtins html