问题标签 [bit-fields]

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 投票
12 回答
107238 浏览

c# - C#中的位域

我有一个结构,我需要填充并写入磁盘(实际上是几个)。

一个例子是:

在 CI 中可能会执行以下操作:

在 C# 中是否有任何方法可以使我能够使用结构取消引用点运算符访问这些位?

对于几个结构,我可以在访问器函数中进行位移。

我有大量的结构要以这种方式处理,所以我正在寻找更容易阅读和更快编写的东西。

0 投票
2 回答
12192 浏览

python - 在 Python 中进行位域操作的最佳方法是什么?

我正在通过 UDP 阅读一些 MPEG 传输流协议,其中有一些时髦的位域(例如长度 13)。我正在使用“struct”库进行广泛的拆包,但是有没有一种简单的方法可以说“抓住接下来的 13 位”而不是手动调整位操作?我想要类似于 C 处理位字段的方式(无需恢复为 C)。

建议?

0 投票
12 回答
60541 浏览

python - Python 有位域类型吗?

我需要一个布尔数组的紧凑表示,Python 是否具有内置位域类型,或者我需要找到替代解决方案?

0 投票
10 回答
13937 浏览

c - ANSI C 是否支持有符号/无符号位域?

将位字段限定为有符号/无符号是否有意义?

0 投票
4 回答
2899 浏览

c# - C#中的位域

所以,位域。具体来说,大位域。我了解如何在位域中操作单个值,但是我将如何在一个大集合上执行此操作,例如:

我遇到的具体问题是在整个阵列中进行左右移位。因此,例如,如果我>> 4在上面的数组上做了一个,我最终会得到:

现在,这里的一个(过于)简单化的算法可能看起来像(这是我在运行中编写代码):

有什么内置的东西可以简化处理这类数据的工作吗?

0 投票
4 回答
11505 浏览

delphi - 如何模拟 Delphi 记录中的位域?

我想在 Delphi 中声明一条记录,其中包含与 C 中相同的布局。

对于那些感兴趣的人:此记录是 Windows 操作系统的 LDT_ENTRY 记录中联合的一部分。(我需要在 Delphi 中使用此记录,因为我正在 Delphi 中开发 Xbox 模拟器 - 请参阅 sourceforge 上的 Dxbx 项目)。

无论如何,有问题的记录定义为:

据我所知,Delphi 中没有位域。我确实试过这个:

但是很可惜:它的大小变成了 10 个字节,而不是预期的 4 个。我想知道我应该如何声明记录,以便获得具有相同布局、相同大小和相同成员的记录。最好没有大量的 getter/setter。

TIA。

0 投票
6 回答
33004 浏览

c++ - 带有布尔值的 C++ 位域打包

我刚刚对位域进行了测试,结果令我惊讶。

结果是:-

这是您所期望的,还是编译器错误?(Codegear C++ Builder 2007,顺便说一句......)

0 投票
2 回答
388 浏览

python - 需要帮助 - 位域转换

我想将字符串转换为位字段。另外,将它们转换为二进制然后使用。需要这方面的帮助..帮助我..

0 投票
7 回答
627 浏览

language-agnostic - 如何选择位标志值?

我有一组选项,一些正交(可以以任何组合组合),一些排他(只允许从集合中选择一个),并且需要选择一组enum值,以便它们可以按位组合or并提取与位and。我希望or-ing 无效组合是可检测的。

有没有这样的生成工具enums

为清晰起见进行编辑

我正在寻找可以利用某些标志无效的事实来减少使用的位数的东西。我能够检测错误的要求是软的。如果事情搞砸了,我不需要知道使用了什么。

我正在使用 C#,但任何解决方案都应该有帮助。

一个示例模式是:

得到 6 个独占标志和 2 的正交对成 6 位

快速测试表明 5 位给出 9 个值,6 位给出 20,...

0 投票
4 回答
1836 浏览

c++ - 枚举位域容器类

我试图编写一个小类来更好地理解 C++ 中的位标志。但有些事情没有解决。它打印错误的值。哪里有问题?我是否误解了如何添加标志?或者检查位域是否有它们?

继承人的代码:

程序输出: