问题标签 [bit-manipulation]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
3 回答
3777 浏览

iphone - iPhone WiTap 示例上的 Bonjour Networking 帮助

我可以关注 Apple 的大部分 WiTap 示例,但在发送方法中的这一点上有点难过:

请注意,我已将 send: 参数更改为仅视图的标记,编号为 1-9。最初代码具有按位与和或调整。

为什么?

我知道 send 方法需要 a 的事实uint8_t,但这就是为什么存在按位的东西吗?将 NSInteger 变成 unint8_t?

该代码不适用于我上面的更改。它将很好地记录并且视觉上客户端将正常运行,但是消息没有从客户端正确地发送/接收到客户端。

有人可以用简短的话解释一下按位的东西在做什么吗?还是我是正确的?

谢谢!这是我对 SO 的第一个问题,所以请善待。


感谢您的回复。我还是有点疑惑。得到它?

基本上,为什么?

这只是传递标识符的一种极客方式吗?这些视图中的每一个都有一个标签#,为什么不直接传递它,并从视图类切换状态(上/下)?

这只是“这就是编写它的人是如何做到的”的一个例子,还是我错过了一个关键的难题,因为这也是我应该如何构建我的代码的方式。

我只想传递一个标签#,然后让该标签决定在一个清晰可读的函数中做什么,比如toggleUpOrDownState什么。

我猜,这种按位计算的东西总是让我觉得自己很愚蠢,除非有必要等等。然后我觉得自己很愚蠢,但无论如何还是设法蒙混过关。:)

0 投票
5 回答
40808 浏览

c - C中的位掩码

什么是在 C 中构造位掩码的最佳方法,其中m设置位前面是未k设置位,然后是未n设置位:

例如,k=1、m=4、n=3 将产生位掩码:

0 投票
5 回答
23074 浏览

c# - 如何将复选框双向绑定到标志枚举的单个位?

对于那些喜欢良好的 WPF 绑定挑战的人:

我有一个几乎实用的示例,将 a 双向绑定CheckBox到标志枚举的单个位(感谢 Ian Oakes,原始 MSDN 帖子)。但问题是绑定表现得好像它是一种方式(UI 到DataContext,反之亦然)。因此有效地CheckBox不会初始化,但如果切换它,则数据源会正确更新。Attached 是定义一些附加依赖属性以启用基于位的绑定的类。我注意到的是 ValueChanged 永远不会被调用,即使我强制DataContext改变。

我尝试过:更改属性定义的顺序,使用标签和文本框确认DataContext正在冒泡更新,任何合理的FrameworkMetadataPropertyOptionsAffectsRenderBindsTwoWayByDefault),明确设置Binding Mode=TwoWay,在墙上敲打头,在发生冲突时更改ValuePropertyEnumValueProperty

任何建议或想法将不胜感激,感谢您提供的任何东西!

枚举:

XAML 用法:

班上:

0 投票
2 回答
2597 浏览

sql-server - 存储过程修改位标志,不能使用枚举,因为很多应用程序都会修改它,我该怎么办?

数据库中有一个 INT 类型的列(Sql server)。

这个 int 值用于位标志,所以我将对它进行 AND'ing 和 OR'ing。

我必须将一个参数传递到我的存储过程中,该参数将代表一个特定的标志项。

我通常会使用枚举并将 int 表示传递给 sproc,但由于许多不同的模块将访问它,因此它们都拥有我的枚举定义是不切实际的(如果它被更改,那将是一个令人头疼的问题推出)。

所以我应该使用“字符串”还是幻数作为参数值,然后在我的存储过程中我会这样做:

0 投票
2 回答
393 浏览

floating-point - 我应该如何对 80 位 IEEE 浮点进行相等性测试?

相关:

但是关于x86 上的80 位 IEEE 浮点数(参见第 8.2 节)

特别是我喜欢使用操作数之间的可表示值计数的这种实现,因为它默认缩放。

一个用例是数值近似,其中两个值彼此接近,我需要检查它们是否足够接近。


ps 实现语言是D,但我可以翻译。此外,可以自动处理任何底层类型的实现(例如,如果只有 64 位实数可用)将是理想的。

当前使用的代码:

0 投票
6 回答
15051 浏览

mysql - MySQL按位运算,布隆过滤器

我想使用 MySQL 实现一个布隆过滤器(其他建议的替代方案)。

问题如下:

假设我有一个存储 8 位整数的表,具有以下值:

我想找到所有按位与此的结果:

结果应该是第 1 行和第 5 行。

但是,在我的问题中,它们不是 8 位整数,而是 n 位整数。我如何存储它,以及如何查询?速度是关键。

0 投票
4 回答
6023 浏览

language-agnostic - 如何使用 +-*/ 实现 XOR?

如何仅使用基本算术运算来实现 XOR 操作(在两个 32 位整数上)?依次除以2的每个幂后是否必须按位进行,还是有捷径?我并不关心执行速度,而是关心最简单、最短的代码。

编辑: 这不是家庭作业,而是在hacker.org上提出的一个谜语。关键是在基于堆栈的虚拟机上实现 XOR,操作非常有限(类似于Brainfuck语言,是的 - 没有 shift 或 mod)。使用该虚拟机是困难的部分,尽管通过一种简短而简单的算法当然会变得更容易。

虽然 FryGuy 的解决方案很聪明,但我将不得不采用我最初的理想(类似于 litb 的解决方案),因为在那种环境中也很难使用比较。

0 投票
3 回答
1744 浏览

c# - 为什么 BitConverter 返回 Bytes 以及如何获取这些位?

作为输入,我得到一个 int(好吧,实际上是一个我应该转换为 int 的字符串)。
此 int 应转换为位。
对于每个具有 1 的位位置,我应该得到该位置。
在我的数据库中,我想要所有具有 int 值字段的记录,该字段将此位置作为值。
我目前有以下幼稚的代码,它应该询问我的实体(持有 databaseValue)是否与位置匹配,但显然不能正常工作:

首先,我有一个字节数组,因为显然没有位类型。我应该使用 Boolean[] 吗?那么,我该如何填充这个数组呢?最后,如果前面的语句得到解决,我应该只返回 bits[position]

我觉得这应该以某种方式用位掩码解决,但我不知道从哪里开始..

任何帮助,将不胜感激

0 投票
4 回答
2003 浏览

sql - SQL 位运算

我迷上了我正在创建的一种名为 VMAC 的新安全范例。可变矩阵访问控制。我想对位串做逻辑暗示。只是想避免 echoeureka (重新发明轮子)。

  1. 在我重新发明轮子之前,是否有一个使用 AND 和 OR 和 NOT 或其他基本 SQL 二元运算符来模拟 ⇒ (逻辑暗示)的捷径?

  2. XNOR 允许我将 ⇒ 仿真减少到四个操作:NOT、XOR、OR 和 AND。但它并没有被广泛使用。任何已知的 XNOR 快捷方式?我正在考虑类似操作数的 AND 操作加上我头顶上的 NOTted 操作数。

  3. 关于在 64 位平台上实现按位数据结构所实现的效率,或对使用并发线程在较大数据对象的字大小段上运行的多线程应用程序的速度有何评论?

(对不起,我不是计算机科学家)

0 投票
9 回答
23840 浏览

python - Python:设置位计数(popcount)

在我的数据库(oracle 11g)中复制了几个 blob,使用 UTL_RAW.BIT_XOR 对 blob 执行了 XOR 操作。之后我想计算二进制字符串中设置的位数,所以写了上面的代码。

在一个小实验中,我想看看生成的十六进制和整数值是什么,并编写了这个程序..

输出:十六进制值:

十六进制代码和产生的整数值之间存在差异,因此使用以下 python 代码检查实际的整数值。

回答:

为了获得设置位计数,我在 C 中编写了以下代码:

当我在 python 中尝试相同的代码时,它不起作用。由于我正在试验的好奇心,我是 python 的新手,如果错了,请原谅。

我在最后一行遇到错误,需要一些帮助来解决这个问题并在 python 中实现逻辑:-)

在我看到之后,我有兴趣查看 python 中的 set bits 版本!

相关问题:计算 32 位整数中设置位数的最佳算法?