我想生成将导致特定枚举值的枚举字段的最短(或最短)可能组合之一。什么是最好的算法来完成这个?如何获得枚举标志值的最短表示?
例如,说我有枚举:
enum MyEnum
{
One = 1,
Two = 2,
Three = One | Two,
Four = 4,
Six = Two | Four,
Eight = 8,
All = One | Two | Four | Eight
}
现在例如该值7
我想我的功能,无论是产量还是"One | Six"
"Three | Six"
。
编辑:当然Three | Four
也是一个有效的输出。
为什么“三|六”而不是“三|四”? – 2013-04-22 13:23:47
@DanielHilgarth或者确实,'One |六' – 2013-04-22 13:25:17
“为什么'三|六'” - 无论是打字错误,还是因为“三”和“六”共用“两个”标志并且不会重复该标志?后续问题,我感兴趣,这是什么? – 2013-04-22 13:25:38