Standard boolean order of operation(标准布尔运算顺序)
本文介绍了标准布尔运算顺序的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!
问题描述
我正在用Javascript编写用于布尔逻辑的调车场算法,并且在操作顺序上遇到了问题。我允许的操作有:
and, or, implies, equals(biconditional), not, xor, nor, nand
但是,我不知道这些的优先顺序是什么。截至目前,我拥有:
not>equals>implies>xor>nor>nand>or>and
这样对吗?是否有类似于PEMDAS/BODMAS数字系统的标准可供我使用?
推荐答案
您很难找到JavaScript的这些运算符的优先级定义,原因是:
- 优先级仅在使用中缀表示法时起作用。既然您提到了调车场算法,我想您打算使用中缀表示法。
- 每种语言都可以定义其自己的优先级,由于您正在创建DSL,因此您可以创建优先级,但它必须是一致的。
- 这些名称实际上是前缀函数名,与名称相比,infix更常见于运算符符号。您应该使用运算符,而不是函数名:
和&;
或|
暗示→
等于(双条件)↔
不是!
异或⊕
Nor⊽
与非⊼ - 在解析时,您将infix转换为前缀或后缀,因此,如果您正在构建一个中间形式(如AST),则运算符符号应该更改为函数名。
- 您没有提到associativity,因为您不需要。
出自"Foundations of Computer Science",作者:Jeffrey D.Ullman
逻辑运算符的结合性和优先性
我们应该使用的优先顺序是
1.不(最高)
2.NAND
3.NOR
4.和
5.或
6.暗示
7.BICONDITIONAL(最低)
发件人Mathematica
不是
和
NAND
异或
或
也不
等效
暗示
这篇关于标准布尔运算顺序的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持编程学习网!
编程基础网
本文标题为:标准布尔运算顺序
基础教程推荐
猜你喜欢
- 逻辑运算符 ||在 javascript 中,0 代表 Boolean false? 2022-01-01
- HTML5 画布调整为父级 2022-01-01
- 从快速中间件中排除路由 2022-01-01
- 即使每次插入第一个输入的值不同,第二个输入仍显示相同的输入值 2022-01-01
- 带角度的选项卡:仅使用 $http 在单击时加载选项卡 2022-01-01
- CORS:当凭据标志为真时,无法在 Access-Control-Allow-Origin 中使用通配符 2022-01-01
- 最佳动态 JavaScript/JQuery 网格 2022-01-01
- 使用 jQuery 在悬停时交换 DIV 类 2022-01-01
- 在 Javascript 中使用 Fetch API 上传文件并显示进度 2022-01-01
- 当木偶师打开Chrome时,不能使用Chrome扩展 2022-01-01
