148得票21回答
使用-1将所有位设置为true是否安全?

我在C和C++中经常看到这种模式。unsigned int flags = -1; // all bits are true 这是实现此目的的好方法吗?还是使用0xffffffff或~0更好?

98得票6回答
为什么给位域赋值后返回的值不同?

我在这篇Quora帖子中看到了以下代码:#include <stdio.h> struct mystruct { int enabled:1; }; int main() { struct mystruct s; s.enabled = 1; if(s.enabled...

86得票12回答
C#中的位域

我有一个需要填充并写入磁盘(实际上有几个)的结构。 例如:byte-6 bit0 - original_or_copy bit1 - copyright bit2 - data_alignment_indicator bit3 - PES_priority bit4-...

77得票7回答
为什么位序对于位域是一个问题?

任何使用位域的可移植代码似乎都区分大小端平台。以Linux内核中struct iphdr的声明为例,可以看到这样的代码。我不明白位元顺序为什么成为问题。 据我所知,位域是纯粹的编译器构造,用于便捷的位级操作。 例如,考虑以下位域: struct ParsedInt { unsig...

65得票4回答
在一个字节内存中存储8个逻辑真/假值?

我正在使用一种只有2KB的SRAM的微控制器,因此需要尽量节约内存。我试图通过位域(bitfield)将8个0/1值放入一个字节中,但是却不太能理解如何实现。struct Bits { int8_t b0:1, b1:1, b2:1, b3:1, b4:1, b5:1, b6:1, b...

63得票3回答
在结构体声明中,比如:1、:7、:16或:32,冒号代表什么意思?

以下的C++代码是什么意思?unsigned char a : 1; unsigned char b : 7; 我猜这段代码创建了两个字符a和b,它们都应该是一个字节长的,但我不知道": 1"和": 7"是什么意思。

63得票4回答
在结构体或联合体中,'unsigned temp:3' 是什么意思?

可能是重复问题: 这段C++代码是什么意思? 我正在尝试使用JNA将一个C结构映射到Java中。我遇到了一些我从未见过的东西。 struct的定义如下:struct op { unsigned op_type:9; //---> what does this ...

58得票11回答
何时使用位域(bit fields)是值得的?

在实际开发中,使用 C 语言的位域是否值得?如果值得,它什么时候会被使用? 我在查看一些模拟器代码时发现,芯片的寄存器并没有使用位域来实现。 这是因为性能原因或其他原因而避免使用位域吗? 在某些情况下,还会使用位域吗?例如要放在实际芯片上的固件等。

57得票12回答
Python 是否有位字段类型?

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

46得票3回答
在C语言中,声明中的冒号表示什么?

可能重复: What does ‘unsigned temp:3’ means 我正在学习一些内核代码,在 Linux 2.4 中遇到了以下行(在 sched.h 文件的 struct mm_struct 结构体中):unsigned dumpable:1; 这意味着什么?