问题标签 [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 投票
2 回答
214 浏览

language-agnostic - 如何获取跨步模式的校验和

我有一个 64 位数(但只使用了 42 个低位),并且需要计算 4 位的总和, 和注意nn+m任何可以产生总和 >4 的东西都是无效的)对于一些固定的 m 和将所有位放入数字中的 n 的每个值n+m*2n+m*3

作为一个例子,使用m=3并给出 16 位数字

我需要计算

有没有人有任何(很酷)的想法来做到这一点?我没问题。


我目前的想法是制作输入的位移副本以对齐要求和的值,然后构建一个逻辑树来执行 4x 1bit 加法器。

这最终会导致结果的位分布在 3 个不同的整数中,但是很好。

编辑:碰巧我需要总和的直方图,所以对 , 进行位计数,o4给我想要的。o2&o1o2o1


第二种解决方案使用完美的散列函数

这通过注意到 4 个选定位只能采用 16 种模式并且(通过猜测和检查)可以使用 mod 30 将它们散列为 0-15。从那里,一个计算值表给出了所需的总和。碰巧只有 4 步中的 3 步我需要以这种方式工作。


ps

正确胜过快速。快胜于清。我预计会运行数百万次。

0 投票
5 回答
26846 浏览

php - 了解 PHP &(与号,按位与)运算符

我经常($var & 1)在我的代码中使用,如果$var是奇数则返回 true,如果是偶数则返回 false。

但是“&”实际上是做什么的呢?

0 投票
4 回答
11449 浏览

database - Oracle中的按位异或

SQL Server中,我一直在使用该符号,但是在Oracle^中似乎不起作用。

如何OR在 Oracle 中进行按位排他?

0 投票
4 回答
900 浏览

c# - 什么是按位或 | 运营商呢?

我正在阅读有关标志枚举和按位运算符的信息,并遇到了以下代码:

我在某处读到了为什么有包容性或陈述以及为什么不能有 &,但找不到文章。有人可以刷新我的记忆并解释原因吗?

另外,我该怎么说和/或?例如。如果 dropdown1="hello" 和/或 dropdown2="hello"....

谢谢

0 投票
1 回答
4981 浏览

sql - 在 DB2 中将位数据的 char 转换为整数

我正在编写一个 DB2 用户定义函数,我需要一个非负整数数组,我将其表示为 bit data 的 varchar。我计划为每个整数使用两个字节(给我一个最大值 2^16-1,这是可以接受的)。

我可以使用chr函数将整数转换为位数据的字符,但是如何将其恢复为整数?

有关 DB2 过程中位操作的任何其他建议也会有所帮助,因为我似乎找不到太多关于它的文档。我在 Linux 上使用 v9.1。

0 投票
4 回答
1160 浏览

bit-manipulation - 位旋转重新排序

我需要对 7 位值进行任意重新排序(是的,我知道我应该使用表格)并且想知道是否有任何位黑客可以做到这一点。

例子:


编辑:我在想一些类似 东西

只是为了踢球,因为我是 AFTK,所以我正在尝试蛮力搜索以下形式的解决方案:

未找到解决方案。

0 投票
8 回答
16580 浏览

java - 如何使用按位运算符将多个整数值传递给 Java 函数?

在应用程序框架中,我不断看到允许您将多个 Int 值(通常用于代替枚举)传递给函数的框架。

例如:

那么 multiValueExample 中应该存在什么逻辑,以便我正确评估使用按位运算符传入的多个 int 值?

0 投票
5 回答
2818 浏览

c - C中的位移

如果对应于有符号整数的位模式向右移动,则

这个问题的答案是第三个选项.. 任何人都可以解释这个,,

还给出一些基本概念,关于 C 编程中左移和右移运算符背后的理论。例如

执行任何操作时在空位上填充的内容。我检查并注意到左移将空位填充0,右移填充1。请清除逻辑...

0 投票
3 回答
829 浏览

c++ - 在 C++ 中操作位数组中的字段

所以我想知道设置和操作位字段。

我已经找到了将字符数组视为比特流的 C/C++ 代码,这与我猜想的问题相似,但它并没有给我一个很好的 stl 方法,我认为它必须存在。

我正在考虑来自stl的位集,但我的数据集非常复杂,位布局为 1、2、3、4、7、8、16 位格式。

假设我想访问我的数据中的一个项目,第 4 个字段是跨越字节边界的 8 位代码段,有没有简单的方法可以做到这一点?

我正在寻找一个好的 stl 实现来访问 4 中的数据或设置 4 中的数据,我认为存在一些问题,因为必须将数据转换为单个字节并将其屏蔽似乎很愚蠢。编写它似乎也很困难,并且应该有一种更简单的方法来完成这样的任务。

还有其他方法吗?

编辑 - 我的数据集长度约为 20 个字节,我想按位顺序保留它

0 投票
2 回答
683 浏览

apache-flex - 有人可以解释这个位操作代码吗?

我有一个树控件,每个节点旁边都有复选框,允许节点上的选中、未选中和中间选中状态。单击节点时,将更新父节点和子节点。我发现的代码使用位移,我试图了解到底发生了什么。

有人可以解释以下代码吗?或者更好的是,重写这段代码以便更容易理解?