如何检查 PowerApps 中是否设置了某个位?
How to check if a bit is set in PowerApps?
如何检查 PowerApp 中的整数值是否设置了特定位?似乎没有用于位操作的内置运算符或函数。
因为我确实需要这个来进行很少的操作,所以使用外部/自定义连接器对我来说可能太昂贵。
要查找数字 val
的位 b
是否已设置,您可以使用如下表达式:
RoundDown(Mod(val,Power(2,b+1))/Power(2,b),0)
此表达式的示例如下所示:
公式
Mod(Trunc(Number / (2 ^ Bit)), 2) = 1
如果设置了值 Number
的 Bit
标志(从零开始计数),则此表达式将为 true
。否则 false
.
例子
32 (00100000)
Number
= 32 Bit
= 0 : false
Number
= 32 Bit
= 4 : false
Number
= 32 Bit
= 5 : true
33 (00100001)
Number
= 33 Bit
= 0 : true
Number
= 33 Bit
= 4 : false
Number
= 33 Bit
= 5 : true
可重用性
如果您打算在您的应用中经常使用它,您可能需要 register it as a custom function 以便于使用
如何检查 PowerApp 中的整数值是否设置了特定位?似乎没有用于位操作的内置运算符或函数。
因为我确实需要这个来进行很少的操作,所以使用外部/自定义连接器对我来说可能太昂贵。
要查找数字 val
的位 b
是否已设置,您可以使用如下表达式:
RoundDown(Mod(val,Power(2,b+1))/Power(2,b),0)
此表达式的示例如下所示:
公式
Mod(Trunc(Number / (2 ^ Bit)), 2) = 1
如果设置了值 Number
的 Bit
标志(从零开始计数),则此表达式将为 true
。否则 false
.
例子
32 (00100000)
Number
= 32 Bit
= 0 : false
Number
= 32 Bit
= 4 : false
Number
= 32 Bit
= 5 : true
33 (00100001)
Number
= 33 Bit
= 0 : true
Number
= 33 Bit
= 4 : false
Number
= 33 Bit
= 5 : true
可重用性
如果您打算在您的应用中经常使用它,您可能需要 register it as a custom function 以便于使用