有没有一种方法可以根据位的位置来选择一个值。这个问题的说法是: - 一个16位的位置,我可以设置任何位,说我设定1,4,6,7,11,13位 所以口罩是: -如何根据位的位置随机选择一个值
Bit Positons 0 0 1 0 1 0 0 0 1 1 0 1 0 0 1 0
现在我需要根据此位掩码随机选择一个值,其中只设置1位,所以我可能的值可能为: -
对于选择4:0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0
For Selecting 7: 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0
但我需要选择此值兰特omly,所以我虽然这样做是这样的
1)创建一个基于位掩码的数组,所以对于16位,该数组将有16个唯一值。
2)现在对数组位置进行rand操作以获取数组索引。
3)使用该数组索引处的值。
有没有更好的方法呢?
如果您已经随机挑选了一个值,结果应该是_exactly_一位设置的值还是_at most_一位设置的值? –
正好设置了1位,该位也设置在位掩码 – Viks