首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >尽可能最短的方法来确定语句中真实案例的数量

尽可能最短的方法来确定语句中真实案例的数量
EN

Stack Overflow用户
提问于 2016-05-18 16:03:13
回答 2查看 107关注 0票数 1

我用powershell编写了一系列if表达式,其中 to n case可能是正确的。

代码语言:javascript
复制
if (!(statement)) {increase errorcode by 1}
if (!(statement)) {increase errorcode by 2}
if (!(statement)) {increase errorcode by 4}
if (!(statement)) {increase errorcode by 8}

所以我想,通过在每一种可能性的错误代码中加上下一个2的倍数,我得到了每个真实情况的可能组合的唯一和。

既然我在数学上并没有那么开明:只有根据检查if表达式后设置的错误代码,确定哪些情况是真的最简单的方法是什么?

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2016-05-18 17:47:48

您可以使用-band检查是否设置了位以验证大小写是否为真。例如:

代码语言:javascript
复制
$i = 0

$caseFlags = @{
    "Case1" = 1
    "Case2" = 2
    "Case3" = 4
    "Case4" = 8
}

if ($true) { $i += $caseFlags["Case1"] }
if ($true) { $i += $caseFlags["Case2"] }
if ($true) { $i += $caseFlags["Case3"] }
if ($false) { $i += $caseFlags["Case4"] }

"`$i is $i"

"Case1 true? $([bool]($i -band $caseFlags["Case1"]))"
"Case2 true? $([bool]($i -band $caseFlags["Case2"]))"
"Case3 true? $([bool]($i -band $caseFlags["Case3"]))"
"Case4 true? $([bool]($i -band $caseFlags["Case4"]))"

输出:

代码语言:javascript
复制
Case1 true? True
Case2 true? True
Case3 true? True
Case4 true? False

如果你也需要计算真实情况,你可以使用@mjolinor的答案。

票数 1
EN

Stack Overflow用户

发布于 2016-05-18 16:12:06

计算真实案件数量的一种选择是:

代码语言:javascript
复制
@([char[]][convert]::ToString($errorcode, 2) -eq '1').Count

该语句将数字的二进制表示形式转换为字符串(例如,5"101"),将字符串转换为字符数组(['1', '0', '1']),并对具有值'1' (@(... -eq '1').Count)的字符进行计数。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/37304765

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档