【发布时间】:2019-11-29 08:47:18
【问题描述】:
假设我有一个包含 7 个元素的布尔数组
boolean myArray = {1,0,1,1,1,0,1}
我想在位域中表示的这个数组:
uint8 myBitfieldofmyArray;
将数组的最后一个元素设置为 myBitfieldofmyArray 中的最高有效位是很重要的。 不考虑最低有效位(位 0),默认情况下始终为 0。
通过以下解决方案,将 1.element 设置为最高有效位:
uint8_t myBitfieldofmyArray= 0;
for (int i = 0; i < 7; i++) {
myBitfieldofmyArray|= myArray[i] ? 1 : 0;
myBitfieldofmyArray<<= 1;
}
如何调整它以将最后一个元素设置为最高有效位?
上述解决方案取自: Pushing boolean values of an array to uint8 bitfield
【问题讨论】:
标签: c bit-fields