Questions tagged «boolean»

6
最佳实践布尔分配
已关闭。这个问题是基于观点的。它当前不接受答案。 想改善这个问题吗?更新问题,以便通过编辑此帖子以事实和引用的形式回答。 4年前关闭。 我在另一个开发人员接手的程序中遇到以下条件: if (obj.Performance <= LOW_PERFORMANCE) { obj.NeedsChange = true; } else { obj.NeedsChange = false; } 我相信这段代码是多余的和丑陋的,因此我根据比较将其更改为我认为是简单的布尔分配: obj.NeedsChange = obj.Performance <= LOW_PERFORMANCE; 看到此消息后,查看我的代码的人评论说,尽管我的更改在功能上是正确的,但可能会使其他人困惑。他认为使用三元运算符可以使此分配更加清晰,而我不喜欢添加更多的冗余代码: obj.NeedsChange = (obj.Performance <= LOW_PERFORMANCE) ? true : false; 他的理由是,如果这样做会使另一个开发人员不得不停下来并确切地想出自己所做的事情,那么以最简洁的方式做某事是不值得的。 真正的问题是,这三种为布尔值赋值的方法中哪一种obj.NeedsChange最清晰,最可维护?

2
是否可以使用“按位与非”来定义所有按位运算符,类似于仅使用“布尔与非”就可以构建所有布尔逻辑的方法?
Nand 之所以称为“通用”逻辑门,是因为它允许您定义所有其他布尔逻辑门: not(x) = nand(x,x) and(x, y) = not(nand(x, y)) or(x, y) = nand(not(x), not(y)) nor(x, y) = not(or(x, y)) xor(x, y) = nand(nand(a, nand(a, b)), nand(b, nand(a, b))) 这被称为nand-logic,并且在现代计算机中经常使用,因为可以使晶体管的行为类似于nand-gate。 我想知道是否可以对按位运算执行类似的操作。可以在例如逐位NAND(bnand)来定义bnot,bor,band,bnor,bxor?有通用的按位运算吗?

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.