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

问题描述 投票:0回答:1

假设我有:

myArray[7] = {TRUE,FALSE,FALSE,TRUE,TRUE,FALSE,FALSE}

uint8 mybitfield;

0=FALSE1=TRUE将这些值“推”到uint8位字段的最有效方法是什么>

因此mybitfield

表示为:
[1,0,0,1,1,0,0,0] 

(最低有效位将不被考虑,并且将始终为0)。

谢谢!

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

c bit-fields
1个回答
1
投票

myArray是某种通用整数类型,实际上除了遍历数组中的所有项目外,别无其他方法,如果为TRUE,则将i设置为bitfield |= 1u << i;

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