问题标签 [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.
sql-server - SQL 服务器 | 对 int/smallint/tinyint 字段的按位运算
我想知道您是否可以对 SQL SERVER 中的 int/uint 字段进行按位运算?
c - 在C中找到整数中最高设置位(msb)的最快/最有效方法是什么?
如果我有一些整数 n,并且我想知道最高有效位的位置(也就是说,如果最低有效位在右边,我想知道最左边的位是 1 的位置),找出最快/最有效的方法是什么?
我知道 POSIX 支持ffs()
在 strings.h 中找到第一个设置位的方法,但似乎没有相应的fls()
方法。
是否有一些我想念的非常明显的方法?
如果您不能使用 POSIX 函数来实现可移植性,那该怎么办?
编辑:一个适用于 32 位和 64 位架构的解决方案怎么样(许多代码清单似乎只适用于 32 位整数)。
c++ - 一些随机的 C 问题(ascii 魔术和位运算符)
我正在尝试学习 C 编程,我正在研究一些源代码,有些东西我不明白,尤其是关于位运算符。我阅读了一些有关此的网站,并且对它们的作用有所了解,但是当我回头查看这些代码时,我无法理解它们为什么以及如何使用它们。
我的第一个问题与按位运算符无关,而是与一些 ascii 魔术有关:
有人可以向我解释以下代码是如何工作的吗?
我知道这样做是为了将 char 转换为 int,但是我不明白它背后的逻辑。为什么/它是如何工作的?
现在,关于按位运算符,我觉得这里真的很迷茫。
这段代码有什么作用?
我在某处读到〜反转位,但我看不到这个语句在做什么以及为什么这样做。
与此行相同:
/li>其他问题:
|= 运算符到底在做什么?根据我的阅读,|= 是 OR,但我不太明白这个语句在做什么。
有什么方法可以重写此代码以使其更易于理解,以便它不使用此按位运算符?我发现它们很难理解,所以希望有人能指出正确的方向来理解它们如何更好地工作!
我现在对位运算符有了更好的理解,整个代码现在更有意义了。
最后一件事:显然没有人回应是否会有一种“更清洁”的方式来重写此代码,使其更易于理解,并且可能不是“位级”。有任何想法吗?
java - 找出以二进制表示正整数所需的位数?
这可能是非常基本的,但是为了节省我一个小时左右的悲伤,谁能告诉我如何计算出在 Java 中表示给定正整数所需的位数?
例如,我得到一个小数点 11,(1011)。我需要得到答案,4。
我想如果我能弄清楚如何将除最高有效位之外的所有位设置为 0,然后 >>> 它,我就会得到答案。但是……我不能。
c# - 将范围转换为位数组
我正在用 C# 编写一段对时间要求严格的代码,它要求我将定义包含范围的两个无符号整数转换为位字段。前任:
它可能有助于以相反的顺序可视化位
该范围的最大值是在运行时给出的参数,我们将其称为max_val
. 因此,位域变量应该定义为一个UInt32
大小等于的数组max_val/32
:
给定由变量x1
和定义的范围x2
,执行此转换的最快方法是什么?
java - 在 Java 中,当使用位移时,为什么 1 << 32 != 1 << 31 << 1?
为什么a == 1
呢?b
正如我所料,是 0。
c++ - 测试位以创建字符串 - 有更好的方法吗?
这段代码有效,但我想知道是否有更好的方法来做到这一点。基本上我需要测试位,并根据位的状态将适当的字符写入字符串。存在空格是因为字符将以固定宽度的字体显示,我想防止它们四处移动。C 或 C++ 都可以。
c# - 如何将位转换为字节?
我有一个代表位的 128 个布尔值数组。如何将这些 128 位表示形式转换为 16 字节?
例子:
我有一个看起来像这样的数组:
(转换为 1s 和 0s 更简洁)
我需要将这些位转换为以下字节数组:
编辑:这似乎不起作用:
它输出:
c# - 左位移 255(作为一个字节)
谁能解释为什么以下内容无法编译?
错误:
常量值“510”不能转换为“字节”
我期待以下二进制文件:
类型转换难倒了我。
c - C中位反转的高效算法(从MSB->LSB到LSB->MSB)
实现以下目标的最有效算法是什么:
0010 0000 => 0000 0100
转换是从 MSB->LSB 到 LSB->MSB。所有位必须颠倒;也就是说,这不是字节顺序交换。