bit-fields 相关问题

位字段用于将多个逻辑值紧凑地存储为短的一系列位,其中每个单个位可以被单独寻址。

将布尔数组的最后一个元素设置为位域中的最高有效位

让我们假设我有一个布尔数组,其中包含7个元素,例如boolean myArray = {1,0,1,1,1,0,1},我想在位域中表示该数组:uint8 myBitfieldofmyArray;重要的是...

回答 1 投票 0

将数组的布尔值推入uint8位字段

假设我有:myArray [7] = {TRUE,FALSE,FALSE,TRUE,TRUE,FALSE,FALSE} uint8 mybitfield;用0 = FALSE,1 = TRUE将这些值“推”到uint8位字段的最有效方法是什么...

回答 1 投票 0

带位域的联合给位域成员带来了意外的价值

我具有以下构造,意在获取包含四个12位值的48位值并提取它们。 struct foo {union {unsigned __int64 data;结构{...

回答 2 投票 1

带位域的联合会给位域成员提供意外的值

我具有以下构造,意在获取包含四个12位值的48位值并提取它们。 struct foo {union {unsigned __int64 data;结构{...

回答 2 投票 0

计算位以表示编译时的枚举

我需要压缩我的结构以节省内存,并且我得到了这样的数据结构:枚举类Foo {F1,F2,F3,FEnd,}; struct Bar {bool b:1; Foo foo:2; // Foo有3个元素,...

回答 1 投票 0


如何将位域写入整数值?

我正在尝试这样做:typedef struct {uint16_t red:6; uint16_t绿色:5; uint16_t蓝色:5; } color_t然后我想得到类似的东西:color_t clr; clr.red = 0; clr.green = ...

回答 2 投票 0

相当于PostgreSQL中的varbinary(10)

我正在尝试定义10位的位字段,在sql server中,我将使用varbinary(10)。我知道bytea取代了图像的varbinary(MAX),但是没有找到有关限制位数的文档...

回答 1 投票 6

通过指针访问带有C中位字段的结构的无符号整数的各个位

假设我们有一个结构定义如下:struct S_BF {unsigned first_bit:1; unsigned second_bit:1;无符号休息:30; }和指向S_BF struct的指针:struct S_BF * bf;如果我们有...

回答 1 投票 0

位域中的溢出

我是否可以相信C编译器每次访问位字段时都对2 ^ n取模?还是在任何编译器/优化中,下面的代码不会打印出溢出? struct {uint8_t ...

回答 4 投票 13

GCC与C11标准中的位域类型

根据C11标准(在此答案中提到),该标准强制支持以下类型:_Bool,signed int和unsigned int。可以支持其他类型,但取决于...

回答 2 投票 0

C ++,从“INT”至比特字段隐含截断

我想创建一个64位的数据结构,每个位(一个或多个)应包含的值。对于这一点,我已经创建了一个结构如下。 (这是关系到J1939协议和ControlApplication NAME只是...

回答 1 投票 0

位标志 - 检查是否设置了任何特定标志(而不是其他标志)

我在游戏中的玩家命令上使用位标志来决定是否允许它们执行。所以位标志列表是这样的:CMD_NONE = 0x0,CMD_TELEPORT = 0x1,CMD_VIP ......

回答 1 投票 0

无法将C中的位字段初始化为全局

我已经宣布了一个比特字段,如下所示。 struct {volatile uint8_t screenflag:1; volatile uint8_t logoflag:1; volatile uint8_t oledflag:1; volatile uint8_t animationflag:1; ...

回答 2 投票 0

在C ++中定义“分配单元”?

在讨论位域时,C ++ 17标准在第12.2.4节中多次使用术语“分配单元”,但似乎没有定义该术语的含义。该标准还指出,“作为一个特殊的......

回答 2 投票 7

无符号位字段值与有符号值的比较

在编写代码时,我在代码中观察到一件事,它与比特字段值与负整数的比较有关。我有一个大小为1位且无符号的无符号结构成员...

回答 2 投票 5

从16位寄存器中获取值

我有一个16位寄存器在第0位,该值为0在第1位... 2处,该值为3在第3位,值为1在第4位,该值为1所以最后我寄存器中的写入值是30因为:(0 x 1)+ ...

回答 1 投票 0

这个C联盟的成员之间有什么区别吗?

下面的typedef是来自Atmel SAMD21 ARM MCU包含文件的DIR寄存器。由于位struct成员和reg成员都是32位,两个成员之间是否有任何区别......

回答 1 投票 5

为什么bit endianness是bitfields中的一个问题?

任何使用位域的可移植代码似乎都区分了小端和大端平台。有关此类代码的示例,请参阅linux内核中struct iphdr的声明。我没能......

回答 7 投票 52

获取位字段结构成员的大小

我已经定义了一个结构,如:struct mystruct {uint32_t onebyte:8; uint32_t twobytes:16; uint32_t threebits:3; };我知道C将位字段定义为至少与...一样宽。

回答 2 投票 0

© www.soinside.com 2019 - 2024. All rights reserved.