bit-fields相关内容

为什么枚举与Windows中的位域不兼容?

我正在为Windows和Linux开发EBDS协议接口。我正在尝试将协议所需的所有数据打包成结构体,然后将结构本身和所有其他内容写入串口发送到设备。 协议的第一部分是数据打包,程序包的其中一个部分是与该描述相符的控制字节: 位0:确认位(每次发送中0和1之间切换)。 位1到3:设备类型。 位4到6:消息类型。 位7:未使用。 为了处理tis控制字节,我创建了两个 ..
发布时间:2017-08-24 01:33:45 C/C++开发

在Swift中声明并使用位域枚举

如果声明这样的枚举可以正常工作,但是共同尝试使用OR 2值无法编译: p> 枚举MyEnum:Int { case One = 0x01 case Two = 0x02 案例四= 0x04 案例八= 0x08 } //按照预期的方式工作 let m1:MyEnum = .One //编译器错误:“无法找到接受提供的参数的'|'的重载” let combin ..
发布时间:2017-08-23 22:39:25 移动开发

如何将bitfield(通过引用)传递给函数?

我的问题是如何通过引用函数传递一个位域实例。我已经执行了如下所示,但是当我启用DAC_set_gain_code的功能时,处理器会引发中断故障。我正在做的正确,只要通过bitfield去吗? 我已经创建了一个位域(见下文),它代表DAC芯片上的一个24位寄存器,我想要写入并生活在.h文件中。 typedef struct { uint8_t rdwr_u8:1; uint8_t ..
发布时间:2017-08-15 20:48:45 HTML/CSS

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

对于那些感兴趣的人:这个记录是一个工会的一部分。 Windows操作系统的LDT_ENTRY记录。 (我需要在Delphi中使用这个记录,因为我正在Delphi中使用Xbox模拟器 - 请参阅sourceforge上的项目Dxbx。) 无论如何,有问题的记录是定义为: struct { DWORD BaseMid:8; DWORD类型:5; DWORD Dpl:2; ..
发布时间:2017-04-23 12:34:10 Delphi

Bit编程语言中的Bitfield

如何访问C.Means中的整个结构成员我想在结构中获取变量的所有数据。 struct数据 { char a:1; char b:2; char c:3; char d:1; } arr; 我可以通过使用访问个人会员。运算符。但是,我需要访问该结构中的所有成员。请告诉我如何做。 解决方案 整个数据和位域结构的联合。 union { ..
发布时间:2017-04-03 16:00:16 其他开发

如何在Core Data中使用二进制标志?

我在Core Data数据库中有一个 int32 属性。 我使用 int 作为枚举位字段。 是否可以创建一个 NSPredicate 来查询基于此int的二进制 值的项目?像 @“bitFieldAttribute& 0x0001”? 我也想知道如果这是可能的二进制类型化属性? 解决方案 NSPredicate 可以处理,不确定CoreData是否会将其作为在数据存储上执行 ..
发布时间:2017-01-10 16:26:16 移动开发

具有混叠的可变大小的位域

我有一些结构包含一个位域,其大小可能不同。示例: struct BitfieldSmallBase { uint8_t a:2; uint8_t b:3; .... } struct BitfieldLargeBase { uint8_t a:4; uint8_t b:5; .... } strong>一次访问所有位: temp ..
发布时间:2016-10-30 01:42:54 C/C++开发

在C ++ 14中的有符号位字段

我相信,直到C ++ 14,声明为 int 的结构的位字段仍然被解释为 signed 或 unsigned ,解释是实现定义的。参考: http://en.cppreference.com/w/cpp/language/bit_field。 在C ++ 14中还是这样吗?也就是说,下面的代码是否保证可以正常工作? #include struct X ..
发布时间:2016-10-26 23:35:57 C/C++开发

2bit位字段对性能和缓存效率的影响?

我需要一个2bit数组,我不关心节省内存,但我关心最小化缓存未命中和最大化缓存效率。使用bool数组将使用4倍的内存,这意味着对于缓存中的每个可用的数据块,将有3个未使用。所以技术上,如果我使用位字段,我可以得到3倍更好的缓存一致性。 该计划是将它实现为一个字节数组,分为4个相等的位域,并使用div函数能够获得积分商和余数在单个时钟中,并使用那些访问正确的索引和右位字段。 我需要的数组 ..
发布时间:2016-10-24 16:55:18 C/C++开发

如何使用长于64位的位字段?

问题说的一切。 如果我有一个96位字段: uint32_t flags [3]; //(thanks @jalf!) 我最好去访问这个,因为我的子字段可以位于32位边界(例如,从位29到35的字段)上。 我需要我的访问尽可能快,我不想将它们迭代为数组的32位元素。 解决方案 ] 平台无关的方式是适当地应用位掩码和位移位 因 ..
发布时间:2016-10-24 16:52:49 C/C++开发

如何使用长于64位的位字段?

问题说的一切。 如果我有一个96位字段: uint32_t flags [3]; //(thanks @jalf!) 我最好去访问这个,因为我的子字段可以位于32位边界(例如,从位29到35的字段)上。 我需要我的访问尽可能快,我不想将它们迭代为数组的32位元素。 解决方案 ] 平台无关的方式是适当地应用位掩码和位移位 因 ..
发布时间:2016-10-24 16:42:36 C/C++开发

2bit位字段对性能和缓存效率的影响?

我需要一个2bit数组,我不关心节省内存,但我关心最小化缓存未命中和最大化缓存效率。使用bool数组将使用4倍的内存,这意味着对于缓存中的每个可用的数据块,将有3个未使用。所以技术上,如果我使用位字段,我可以得到3倍更好的缓存一致性。 该计划是将它实现为一个字节数组,分为4个相等的位域,并使用div函数能够获得积分商和余数在单个时钟中,并使用那些访问正确的索引和右位字段。 我需要的数组 ..
发布时间:2016-10-24 15:11:29 C/C++开发

如何为带有位字段的结构分配值?

我有一个位域(总共32位宽)的结构,我有一个32位的变量。当我尝试分配变量值到我的结构,我得到一个错误: 错误:从'uint32_t {aka unsigned int} '到非标量类型'main():: CPUID'请求。 struct CPUIDregs { uint32_t EAXBuf; }; CPUIDregs CPUIDregsoutput; in ..
发布时间:2016-10-23 20:11:01 C/C++开发

在带有位字段的结构中的偏移

如果我们有一个具有位字段的结构,那么后续成员如何在结构中对齐?考虑以下代码: struct A { int a:1; char b // in offset 1 }; struct B { int a:16; int b:17; char c; // at offset 7 }; printf(“Size of A:%d \\\ ”,(int)sizeo ..
发布时间:2016-10-23 13:18:47 C/C++开发

位字段成员的大小?

有人知道如何提取位字段成员的大小。下面的代码自然地给了我一个整数的大小,但是如何找出多少位或字节在 mybits.one ?我试过 sizeof(test.one)但是显然不会工作。我知道这是一个量度的位: #include using namespace std; int main() { struct mybits { unsigned in ..
发布时间:2016-10-22 18:32:53 C/C++开发

是否有一个可移植的替代C ++位字段

有许多情况(特别是在低级编程中),其中数据的二进制布局很重要。例如:硬件/驱动程序操作,网络协议等。 在C ++中,我可以使用 char * 和按位操作(屏蔽和移位),但是这是冗长乏味和容易出错。显然,我试图限制这些操作的范围,并将它们封装在更高级的API中,但它仍然是一个痛苦。 ..
发布时间:2016-10-22 18:29:56 C/C++开发

C ++ bitfield包装与bools

我刚刚做了一个测试与位字段,结果是令人惊讶的我。 class test1 { public: bool test_a:1; bool test_b:1; bool test_c:1; bool test_d:1; bool test_e:1; bool test_f:1; bool test_g:1; bool test_h:1; }; class ..
发布时间:2016-10-14 10:31:24 C/C++开发