用于检查数字是否在特定范围内的位旋转

2024-02-15

我发现了一些有趣的事情"source\common\unicode\utf.h"ICU 库文件(Unicode 国际组件)。位旋转旨在检查数字是否在特定范围内。

// Is a code point in a range of U+d800..U+dbff?
#define U_IS_LEAD(c) (((c)&0xfffffc00)==0xd800)

我已经弄清楚神奇的数字(0xfffffc00)来自:

MagicNumber = 0xffffffff - (HighBound - LowBound)

然而,我还发现该公式并不适用于每个任意范围。这里有人知道这个公式在什么情况下有效吗?

是否还有另一个位可以用来检查数字是否在特定范围内?


要应用这些技巧,数字的二进制表示形式必须具有一些共同特征。

0xD800 == 0b1101_1000_0000_0000
0xDBFF == 0b1101_1011_1111_1111

该测试的真正作用是屏蔽掉低十位。这通常写为

onlyHighBits = x & ~0x03FF

在此操作之后(“与非”),低十位onlyHighBits保证为零。这意味着如果这个数字现在等于区间的下限,那么它之前就已经在区间的某个位置了。

此技巧适用于区间的下限和上限以相同的二进制数字开头的所有情况,并且在某些情况下下限只有 0,而上限只有 1。在您的示例中,它位于右侧第十个位置。

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

用于检查数字是否在特定范围内的位旋转 的相关文章

随机推荐

  • LibreOffice 4.1 Writer:调整表格中列宽的宏

    我正在研究一些适用于表格的 LibreOffice 宏 特别是将每列和行的宽度和高度设置为 0 85 厘米 0 335 英寸 在 MS Office 中 这很简单 只需选择表格并在宏中包含 Selection Rows Height Cen
  • 使用最新版本 Lucene 的示例

    我是 Lucene 的新手 想直接从 Maven 环境中的 Java 代码调用它 我已经尝试了一段时间来寻找可以下载和运行的工作示例 官网最新的教程是2013 Lucene 3 https cwiki apache org confluen
  • 表示可以有子菜单的菜单的数据结构

    例如我可以有这样的东西 A B ba bb C Ca D 现在我有一个 2D 数组 但这不是很通用 因为如果我想将最大子级别从 2 扩展到 3 我需要另一个维度 有什么建议吗 复合模式在这里是一个合适的应用 来自维基百科 http en w
  • 取消设置 $_SESSION 不起作用

    嗨 我编写了一个与 facebook 连接并注册用户的代码 然后它使用户登录 一切都很好 当他们登录时 我设置 SESSION id 我的猜测是 如果未设置此设置 用户将从我的网站注销 并且不会 自动重新连接 因为以前它就像一个循环 每次我
  • 将 get() 与替换函数一起使用

    谁能向我解释为什么会出现以下示例 Create simple dataframe assign df data frame P runif 5 Q runif 5 R runif 5 Return the dataframe from th
  • 无法加载文件或程序集“System.Web.Helpers,IIS 8 上出现错误”

    我有一个 MVC4 Web 应用程序 可以使用本地 IIS Express 服务器在 Visual Studio 2012 上正常运行 当我将应用程序发布到在 Windows 2012 上运行的 IIS 8 Web 服务器时 初始登录页面会
  • 如何从 Microsoft Access 的附件字段查询附件数量?

    我的一位用户有一个 Microsoft Access 数据库 并且在表中他有一个附件字段 在他的一个查询中 他想要返回该字段包含的附件 数量 我试图让它发挥作用 但没有成功 我尝试创建一个 VBA 模块并将字段传递给它 但它对我来说出错了
  • 如何将 cmd python 从 anaconda 更改为默认 python?

    windows powershell 或 cmd 使用 anaconda python 而不是默认的 windows 安装如何让他们使用默认的Python安装 我的操作系统是Windows 8 1蟒蛇3 6蟒蛇蟒蛇3 6 在系统属性中设置默
  • 如何在.net core中进行String.Copy?

    在将 net Framework 应用程序移植到 net core 应用程序时 有一些用途String Copy https msdn microsoft com en us library system string copy v vs
  • 为什么蒙特卡罗树搜索会重置树

    我有一个小但可能很愚蠢的问题蒙特卡罗树搜索 https en wikipedia org wiki Monte Carlo tree search 我理解其中的大部分内容 但一直在研究一些实现 并注意到在给定状态运行 MCTS 并返回最佳移
  • 如何让 SwiftUI 视图在拖动时显示在其他视图前面?

    我正在用新的 更完整的代码更新这个问题 以展示我如何尝试实现下面来自 HunterLion 的答案中的建议 这是问题的原始陈述 我正在使用 SwiftUI 实现 Pentominos 的一个版本 当我将一个片段 视图 拖到板上时 我希望它在
  • 在 Angular 中处理 Accordion 的打开/折叠事件

    如果我有这个代码
  • 通过架构更改从暂存 > 生产中无缝 EF 迁移

    我有一个简单的网络应用程序 它由带有暂存槽和生产槽的 Azure Web 应用程序组成 当不需要考虑数据库迁移时 我可以通过以下方式轻松实现无缝更新 将应用程序部署到暂存区 交换暂存 生产槽位 当我要处理数据库迁移时 这会变得更加棘手 现在
  • 使用 PHP 进行 CURL - 非常慢

    All 我必须请求一个返回 JSON 请求的 URL 我正在使用 PHP 和 CURL 来执行此操作 目前 请求和响应大约需要 3 4 秒 以下是curl代码 ch curl init devnull fopen tmp curlcooki
  • 以Python方式创建列表的列表

    我正在使用列表列表来存储 python 中的矩阵 我尝试按如下方式初始化 2x3 零矩阵 mat 0 2 3 但是 当我更改矩阵中一项的值时 它会更改该条目的值every行 因为每行的 idmat是一样的 例如 分配后 mat 0 0 1
  • 使用spring security时如何在velocity宏中获取csrf令牌

    我正在尝试为启用了 Spring Web Security 的应用程序创建自定义登录屏幕 但我无法弄清楚如何将 csrf 令牌传递给velocity 不 我目前无法使用 JSP 该模型看起来像这样 RequestMapping value
  • Fabric.JS 与 Node.JS - 导出为 PNG/JPEG

    所以我只是在玩 Fabric JS适用于 Node JS 不适用于 Web 我已经成功制作了一个静态画布 并在上面放置了一个矩形 出口的时间到了 这是我创建画布并添加矩形的代码 var canvas new fabric StaticCan
  • 使用 C# 查找磁盘上所有 exe 文件的最有效方法?

    使用 C 查找磁盘上所有 exe 文件的最有效方法是什么 它将在程序的后台线程中完成 因此磁盘使用量应尽可能小 您提供的链接是 C 中最有效的方法 使用 Net 4 0 Directory EnumerateFiles 方法 http ms
  • 将字符串与其自身连接两次会导致分段错误

    include
  • 用于检查数字是否在特定范围内的位旋转

    我发现了一些有趣的事情 source common unicode utf h ICU 库文件 Unicode 国际组件 位旋转旨在检查数字是否在特定范围内 Is a code point in a range of U d800 U db