检测整数内的单个一位流

2024-01-14

我必须检查一个号码是否满足以下条件:

  • 在二进制中,所有一位必须是连续的。
  • 该数字必须至少设置一位。
  • 连续的一位可能从 MSB 开始或在 LSB 结束,因此如果该数字由单个一位流后跟零位流组成,则完全有效,反之亦然。

我编写了一个代码来检查现实问题的这些条件(检查数据文件完整性)。

它工作起来没有问题,而且对时间要求不高,但我是一个老的比特狂,喜欢这样的谜题,所以我试图想出一种更聪明的方法来检查单比特流。

字符串被零包围的情况很容易,但不能处理特殊情况。

欢迎任何想法、二进制黑客和部分解决方案!


为了使我的要求更清楚,举一些例子:以下数字满足我的标准:

  0x80000000
  0x00000001
  0xff000000
  0x000000ff
  0xffffffff
  0x000ff000

以下数字则不然(因为它们有多个连续的字符串):

  0xf00000f <- one-bit streams should not wrap-around at 2^n
  0x0001700 <- a trivial example.
  0x0000000 <- no one bit at all.

这应该做你想做的。

if(i == 0)
    return false;
while(i % 2 == 0) {
    i = i / 2;
}
return (i & (i + 1)) == 0;
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

检测整数内的单个一位流 的相关文章

  • 承诺的反面是什么?

    承诺代表将来可能可用 或无法实现 的值 我正在寻找的是一种数据类型 它表示将来可能变得不可用的可用值 可能是由于错误 Promise a b TransitionFromTo
  • 在python中将十进制转换为二进制[重复]

    这个问题在这里已经有答案了 python 中是否有任何模块或函数可以用来将十进制数转换为其等价的二进制数 我可以使用 int binary value 2 将二进制转换为十进制 所以有什么办法可以在不自己编写代码的情况下进行相反的操作吗 所
  • 优化 tribool 数组的空间

    让我从一些背景开始 通过 tribool 我理解一个可以保存以下值之一的变量 true false or null 有问题复制整数数组与布尔指针数组 https stackoverflow com questions 4350041 cop
  • 不使用“-”运算符将两个数字相减

    我尝试使用以下代码 但我不明白为什么它给了我错误的答案 我正在计算 2 的补码并添加另一个数字 include
  • 我使用仅大小写不同于其类型的变量名是不道德的吗?

    例如 采用这段代码 var person new Person 或者对于 Python 爱好者来说 person Person 我经常被告知这有多糟糕 但还没有看到这两行代码不道德的例子 对我来说 人就是一个人 试图给它起另一个名字是浪费时
  • 如何命名变量

    您使用什么规则来命名变量 哪里允许使用单字母变量 你在名字中加入了多少信息 例如代码怎么样 你最喜欢的无意义变量名是什么 在 foo 和 bar 之后 为什么它们被拼写为 foo 和 bar http en wikipedia org wi
  • 有人真正有效地实现了斐波那契堆吗?

    你们中有人曾经实施过斐波那契堆 http en wikipedia org wiki Fibonacci heap 几年前我就这样做了 但它比使用基于数组的 BinHeaps 慢了几个数量级 当时 我认为这是一个宝贵的教训 告诉我们研究并不
  • 加密单个int的方法

    如何以廉价的方式对 32 位 int 进行双向加密 使每个数字都映射到该空间中的其他 int 并以难以预测的方式映射回来 当然 并且不需要在映射表中预先存储 42 9 亿个整数 您想要的是 32 位分组密码 不幸的是 大多数分组密码都是 6
  • 如何计算某物是否位于某人的视野中

    我有一个对象 它在 2D 空间中具有位置和速度 两者都由向量表示 对象的视野每侧均为 135 度 它看起来与移动的方向相同 速度矢量 我有一些对象 其在 2D 空间中的位置由向量表示 在图中 蓝色背景上的对象是可见的 红色背景上的对象对主体
  • 2.9999999999999999 >> .5?

    我听说您可以将数字右移 0 5 而不是使用 Math floor 我决定检查它的限制以确保它是合适的替代品 因此我检查了以下值并在 Google Chrome 中得到了以下结果 2 5 gt gt 5 2 2 9999 gt gt 5 2
  • 使用 STL 算法与容器(char * 除外)进行 C++ 二进制文件 I/O

    我正在尝试使用 STL 复制算法对二进制文件 I O 进行简单测试 以将数据复制到容器和二进制文件中 从容器和二进制文件中复制数据 见下文 1 include
  • 计算列表的累积和,直到出现零

    我有一个 长 列表 其中随机出现零和一 list a 1 1 1 0 1 1 0 1 0 1 1 1 我想获取 list b 列表中出现 0 之前的总和 出现0的地方 在列表中保留0 list b 1 2 3 0 1 2 0 1 0 1 2
  • 用于在 n LSBits 之后清除 m 位的掩码

    我在一次采访中被问到这个问题 要清除 16 位整数的 n 位之后的 m 位 假设数字是 10010010010100101 清除 LSBit 中 5 位后的三位 之前 1001100111011001 之后 1001100100011001
  • 如何将惰性变量传递给函数参数而不对其求值,除非返回

    这个问题是针对python的 尽管我不介意用户分享其他语言的经验 基本上我的问题是尝试将惰性变量传递给函数 就我而言 我可能无法控制该函数 因此无法更改它以将生成器作为输入 示例 请注意 dict get 是函数的示例 但它很可能是 foo
  • Java:用于标志检查的位运算

    我试图检查一个数字是否有第二位标志 即 0000 0010 我的代码如下 int flags Integer parseInt fields 1 String strflags Integer toBinaryString flags fl
  • Haskell 二进制解析

    我一直在尝试在 haskell 中实现一个协议解析器 而且我对这门语言还很陌生 特别是当涉及到 monad 时 我一直在使用binary 0 5 0 2 并描述了协议的标头和所有有效负载 我想要解析的消息如下所示 header payloa
  • 二元除法问题:互联网上的坏例子或者我错过了什么?

    我想创建一个 16 位 CRC 实际上我已经完全准备好了 所以几个小时前我测试了它 但没有正常工作 但我发现互联网上的例子在涉及二进制除法时可能是错误的 我只链接其中两个 来自很多 http www ross net crc downloa
  • 从原点开始在离散 2D 网格上迭代向外螺旋的算法

    例如 这是预期螺旋的形状 以及迭代的每个步骤 y 16 15 14 13 12 17 4 3 2 11 18 5 0 1 10 x 19 6 7 8 9 20 21 22 23 24 其中线条是 x 轴和 y 轴 以下是算法每次迭代 返回
  • 自动跟踪算法

    我正在尝试写一个simple跟踪例程来跟踪电影中的某些点 本质上我有一系列 100 帧长的电影 在黑暗背景上显示一些亮点 我每帧有大约 100 150 个点 它们在电影的过程中移动 我想跟踪它们 所以我正在寻找一些有效的 但可能不会过度实施
  • 有哪些学习线程编程的好资源? [关闭]

    Closed 这个问题不符合堆栈溢出指南 help closed questions 目前不接受答案 随着多核CPU在桌面上的兴起 多线程技能将成为程序员的宝贵资产 您能为想要学习线程编程的程序员推荐一些好的资源 书籍 教程 网站等 吗 看

随机推荐

  • C++ 支持成员函数引用吗?

    C 允许函数指针 and 函数参考 https stackoverflow com questions 480248 function references 它还允许指向成员函数的指针 But 是否允许引用成员函数 我似乎无法从标准中推断出
  • Emacs 颜色。为什么当前行是灰色的?森伯恩主题

    我安装了Prelude https github com bbatsov prelude在我的 emacs24 上 我使用的是ubuntu 12 04 我第一次使用它时效果很好 但接下来的次数就不行了 在我当前的行上 字体颜色是灰色的 因此
  • ngx-翻译和 *ngFor

    我有这个代码 div span img alt span h4 service name h4 p service desc p div 如何对具有 3 个参数的每个服务进行翻译 在正常情况下我使用 something translate
  • 在 Keras 中,当我创建具有 N 个“单元”的有状态“LSTM”层时,我到底要配置什么?

    正常的第一个参数Dense层也是units 是该层中神经元 节点的数量 然而 标准 LSTM 单元如下所示 这是 的修改版本 了解 LSTM 网络 http colah github io posts 2015 08 Understandi
  • 使用 Lumen 获取 file_get_contents

    我将此代码放入函数 php 类 中 theFile test test xml these are in the public folder dd file get contents theFile 如果我去mydomain local t
  • 基于两个表之间的子查询的Oracle SQL更新

    我目前正在编写更新语句 以使可查询的表不断保持最新 两个表之间的架构相同 内容并不重要 STAGING ID NAME COUNT PRODUCTION ID NAME COUNT 我的更新语句如下所示 update PRODUCTION
  • C# 小数类型除法的精度在 Mono 上不同?

    decimal d1 4 0m decimal d2 40 0m decimal d d1 d2 string repr d ToString 在 Windows 上 我得到的 repr 为 0 1 在 Mono Xamarin Andro
  • 为什么未初始化的属性在课堂上公开?

    请考虑以下代码 class foo function bar this gt baz hello there f new foo f gt bar echo f gt baz hello there 为什么上面的代码有效 我的意思是我还没有
  • Oracle CASE 语句?

    我有一个存储过程 我在其中传递布尔值 例如IS ELIGIBLE 现在我希望能够编写如下查询 SELECT col1 CASE WHEN IS ELIGIBLE THEN col2 100 ELSE col2 50 END INTO OUT
  • JavaFX 导航栏和内容窗格

    我想在我的新项目中使用 JavaFX 并且想要像下面的屏幕截图所示的东西 在左侧网站上我需要一个导航栏 在右侧网站上我需要一个内容 因此 我会在左侧使用 VBox 在右侧使用 AnchorPane 或者更好的是 ScrollPane 当我单
  • Terraform:heredoc 锚点中的无效字符

    我正在尝试在中使用多行字符串provisioner remote exec 我的 Terraform 脚本块 然而每当我使用EOT文档和各种示例中概述的语法我收到一个错误 抱怨有 invalid characters in heredoc
  • 包含 json 的数据属性中的单引号

    化妆品问题 我有一个 html 元素 其中包含一些嵌入图像的可能尺寸 这些尺寸存储为 div class inside div
  • Chrome 扩展程序不发送 SameSite=Lax cookie

    我在通过弹出脚本的 chrome 扩展处理 cookie 时遇到一些问题 popup js 内容 document addEventListener DOMContentLoaded gt function cookieinfo chrom
  • Tesseract OCR:解析表格单元格

    我正在使用 cmd 中的 Tesseract OCR v4 0 0 alpha 从如下所示的表格的 png 中提取文本 我希望 Tesseract OCR 能够解析一个单元格中的内容 然后再转到下一个单元格 我不想继续 行 中的下一个单词
  • 关于 Google Directions API 中的 escape=tollroads 的问题

    我有一些关于 Google Directions API 的问题 Google Directions API 中的 escape tollroads 是否完全避开部分收费公路 或者它是否足够聪明 知道有些路线可以在部分收费公路上行驶 但实际
  • Android Studio 运行应用程序太慢

    当我运行我的应用程序时 大约需要 10 分钟才能在我的手机上显示 而且每次更改代码也需要 10 分钟 我应该怎么办 我在用Android Studio 2 0 在 android studio 中转到 文件 gt 设置 gt 构建 执行 部
  • 如果攻击者知道盐,那么它们对安全性是否毫无用处?

    假设我有一个这样设置的用户表 CREATE TABLE users id INTEGER PRIMARY KEY name TEXT hashed password TEXT salt TEXT 创建用户时 会生成随机生成的盐并将其与类似结
  • 如何在response.redirect中将列表作为参数传递

    问题1 我有两个列表 我想在下一页中访问它们 我将重定向它们 目前的结果 当我传递结果时 它在 url 中显示列表数据类型 ex System Collections Generic List1 IDataEntities ISearchR
  • Bash 命令查看 dir 中是否有文件 - 测试目录是否为空[重复]

    这个问题在这里已经有答案了 我有以下 bash 脚本 if ls Users david Desktop empty gt dev null then echo yes files else echo no files fi 如果目录中有一
  • 检测整数内的单个一位流

    我必须检查一个号码是否满足以下条件 在二进制中 所有一位必须是连续的 该数字必须至少设置一位 连续的一位可能从 MSB 开始或在 LSB 结束 因此如果该数字由单个一位流后跟零位流组成 则完全有效 反之亦然 我编写了一个代码来检查现实问题的