逻辑运算

Delphi运算符列表

孤人 提交于 2020-01-14 07:41:55
1, 有序类型运算符 ord:返回有序值在值域中的序数 如:ord('A') = 65 pred:返回指定值的前一个值 pred('B') = A succ:返回指定值的下一个值 succ('A') = B high:返回变量能够表示的最大值或某类型的上界 high(byte) = 255 low:与high相反 2, 数学运算符 + - * / div 整除 mod 求余 3, 逻辑运算符 not 反 and 且 or 或 xor 异或 4, 位运算符 not 按位取反 and 按位取且 or 按位取或 xor 按位取异或 shl 左移 shr 右移 5, 字符串运算符 + 将字符串连接 6, 集合运算符 + 并集 - 差集 * 交集 <= 子集 >= 超集 = 相等 <> 不等 in 成员 7, 关系运算符 = 相等 <> 不等 < 小于 > 大于 <= 小于或等于 >= 大于或等于 8, 类运算符 s 转换 is 判断 来源: CSDN 作者: 木生火 链接: https://blog.csdn.net/msh2016/article/details/103758296

编译原理 语义分析

故事扮演 提交于 2020-01-14 02:28:20
文章目录 1. 语义与语法的区别 重点:语义分析的两个作用 <3> 语义分析的方法 2. 中间代码 重点:要求中间代码具有如下特性,以便于编译器的开发移植和代码的优化: 3.后缀式 定义 算法实现 4.后缀式的计算 5.三地址码 6.四元式主要由四部分组成: 三地址代码 例题有文法 G 和 G 的语法制导翻译如下: 7.符号表 8. 数组元素的引用 9. 布尔表达式 10. 控制语句 11.过程的定义与声明 左值和右值 拉链回填 1. 语义与语法的区别 <1> 语法与语义的关系 语法是指语言的结构、即语言的“样子”;语义是指附着于语言结构上的实际含意 ,即语言的“意义”。 对于语法和语义: 语义不能离开语法独立存在; 语义远比语法复杂; 同一语言结构可包含多种含意,不同语言结构可表示相同含意; 语法与语义之间没有明确的界线。 重点:语义分析的两个作用 1.检查是否结构正确的句子所表示的意思也合法; 2.执行规定的语义动作,如: 表达式求值 符号表填写 中间代码生成等 <3> 语义分析的方法 语法制导翻译 2. 中间代码 重点:要求中间代码具有如下特性,以便于编译器的开发移植和代码的优化: 便于语法制导翻译; 既与机器指令的结构相近,又与具体机器无关。 3.后缀式 定义 一个表达式E的后缀形式可以如下定义: (1)如果E是一个变量或常量,则E的后缀式是E本身。 (2)如果E是E1

前缀、中缀、后缀表达式

守給你的承諾、 提交于 2020-01-13 02:23:09
它们 都 是对表达式的记法,因此也被称为前缀记法、中缀记法和后缀记法。它们之间的区别在于运算符相对与操作数的位置不同:前缀表达式 的运算符位于与其相 关的操作数之前;中缀和后缀同理。 举例: (3 + 4) × 5 - 6 就是中缀表达式 - × + 3 4 5 6 前缀表达式 3 4 + 5 × 6 - 后缀表达式 一、中缀表达式(中缀记法) 中缀表达式是一种通用的算术或逻辑公式表示方法,操作符以中缀形式处于操作数的中间。 中缀表达式是人们常用的算术表示方法。 虽然人的大脑很容易理解与分析中缀表达式,但对计算机来说中缀表达式却是很复杂的,因此计算表达式的值时,通常需要先将中缀表达式转换为前缀或后缀表达式,然后再进行求值。 对计算机来说,计算前缀或后缀表达式的值非常简单。 二、前缀表达式(前缀记法、波兰式) 前缀表达式的 运算符位于两个相应操作数之前。 前缀表达式的计算机求值:(相当于转换成了中缀表达式) 从右至左扫描表达式 ,遇到数字时,将数字压入堆栈,遇到运算符时,弹出栈顶的两个数,用运算符对它们做相应的计算(栈顶元素 op 次顶元素),并将结果入栈;重复上述过程直到表达式最左端,最后运算得出的值即为表达式的结果。 例如前缀表达式“- × + 3 4 5 6”: (1) 从右至左扫描,将6、5、4、3压入堆栈; (2) 遇到+运算符,因此弹出3和4(3为栈顶元素,4为次顶元素

前缀、中缀、后缀表达式以及简单计算器的C++实现

两盒软妹~` 提交于 2020-01-12 13:46:24
前缀表达式(波兰表达式)、中缀表达式、后缀表达式(逆波兰表达式) 介绍   三种表达式都是 四则运算的表达方式,用以四则运算表达式求值,即数学表达式的求解。 前缀表达式 前缀表达式是一种没有括号的算术表达式,与中缀表达式不同的是,其将运算符写在前面,操作数写在后面。为纪念其发明者波兰数学家Jan Lukasiewicz,前缀表达式也称为“波兰式”。例如,- 1 + 2 3,它等价于1-(2+3)。 中缀表达式 中缀表达式就是一般的算数表达式,操作符以中缀形式出现在操作数之间。 后缀表达式 后缀表达式指的是不包含括号,运算符放在两个运算对象的后面,所有的计算按运算符出现的顺序,严格从左向右进行(不再考虑运算符的优先规则)。 中缀表达式转前缀表达式   例如:对于中缀表达式 (3+4)×5-6 ,其前缀表达式为 - × + 3 4 5 6 。前后缀表达式与中缀之间的转换关系,不在此赘述,在 Seraphjin 的博客中,通过二叉树的方式,很好地解释了这一内容。 除了该博客中所说的二叉树法,还可以通过栈方法,来实现二者的转换,具体步骤如下: 初始化两个栈:运算符栈S1和储存中间结果的栈S2; 从右至左扫描中缀表达式; 遇到操作数时,将其压入S2; 遇到运算符时,比较其与S1栈顶运算符的优先级: 如果S1为空,或栈顶运算符为右括号“)”,则直接将此运算符入栈; 否则

基本运算符

北战南征 提交于 2020-01-12 11:07:29
基本运算符 计算机的本质就是用来计算和存储数据. 那java如何计算呢? 使用 一些基本运算符就可以了 算数运算 符号 含义 + 求和运算 - 减法运算 * 乘法运算 / 除法运算 % 余数运算 int a = 20; int b = 10; // 加法运算 System.out.println(a + b); // 30 // 减法运算 System.out.println(a - b); // 10 // 乘法运算 System.out.println(a * b); // 200 // 除法运算 System.out.println(a / b); // 2 除法 // 取余运算 System.out.println(a % b); // 0 余数 System.out.println(10 / 3); // 3 System.out.println(10 % 3); // 1 赋值运算 符号 含义 = 赋值操作 += 累加 -= 累减 *= 累乘 /= 累除 %= 累计取余 先说赋值(=)操作. 这个等号和我们数学上的等号是不一样的. 数学中, 等号表示左右两端计算出来的结果是相同的. 但是在编程的世界里. =表示赋值. 把等号右边的结果赋值给等号左边的变量. 赋值操作的计算顺序: 先计算右边. 然后把右边的结果给左边的变量 int a = 10; int b = a +

ES6的新增特性

假装没事ソ 提交于 2020-01-11 14:25:41
目录 第一篇、开发环境搭建 第二篇、三种声明方式 2.1 var(全局声明) 2.2 let(局部声明) 2.3 const(常量声明) 第三篇、解构赋值 3.1 数组的解构赋值 3.2 对象的解构赋值 3.3 字符串的解构赋值 第四篇、对象扩展运算符和rest运算符 4.1 对象扩展运算符 4.2 rest运算符 第五篇、新增字符串 5.1 字符串模板 5.2 字符串查找 5.3 字符串的复制 第六篇、数字的操作 6.1 数字判断 第七篇、数组方法 7.1 Array.from() 7.2 Array.of() 7.3 find()实例方法 7.4 fill()实例方法 7.5 entries()实例方法 7.6 数组循环 7.6.1 for...of 第八篇、函数扩展和箭头函数 第八篇、函数和数组的查缺补漏 8.1 对象的函数解构 8.2 数组解构 8.3 in的用法 8.4 数组遍历 8.5 数组转为字符串 第九篇、ES6中的对象 9.1 对象的赋值 9.2 key值的构建 9.3 自定义对象 9.3.1 is() 9.3.2 assign() 第十篇、Symbol在对象中的作用 10.1 认识Symbol 10.2 Symbol在对象中的应用 第十一篇、Set和WeakSet数据结构 11.1 Set的增删查 11.2 Set的输出 11.3 WeakSet的声明 11.4

Java面试题26——运算符优先级

故事扮演 提交于 2020-01-11 08:48:36
运算符优先级 1.Java中的运算符优先级: 口诀:单目乘除为关系,逻辑三目后赋值。(大佬总结的) 口诀解释: 单目:指的是例如正负(±)这些一次只作用于一个变量的运算符,又叫一元运算符。 乘除:乘、除、模 ,毫无疑问优先级比加减高一级 为:即谐音“位”,指的是位运算中用到的符号:~(按位取反)<<(左移) >>(右移),^(也可以位运算,二进制异或)。 关系:大于、大于等于、小于、小于等于 逻辑:指的是异或、与、或三个逻辑运算符 三目:即三目运算符:条件运算符A > B ? X : Y 赋值:赋值运算符 具体的运算符排序如下:可以看到与我们的口诀不同的是,位运算符(按位与、按位或、按位异或)优先级排在关系运算符的后面。但是>>,<<,>>>等位运算符在关系运算符前面。~(按位取反)优先级很高。 这里的结合性是指运算符结合的顺序,通常都是从左到右。从右向左的运算符最典型的就是负号,例如3±4,则意义为3加-4,符号首先和运算符右侧的内容结合。 来源: CSDN 作者: 子衿@ 链接: https://blog.csdn.net/huiyanfreeflying/article/details/103914219

Java的运算符

耗尽温柔 提交于 2020-01-11 01:58:13
Java的运算符 运算符的分类 算术运算符 赋值运算符 关系运算符 逻辑运算符 位运算符 其他运算符 运算符的分类 运算符指明对操作数的运算方式。组成表达式的Java操作符有很多种。运算符按照其要求的操作数数目来分,可以有单目运算符、双目运算符和三目运算符,它们分别对应于1个、2个、3个操作数。运算符按其功能来分,有算术运算符、赋值运算符、关系运算符、逻辑运算符、位运算符和其他运算符。 算术运算符 单目: ~ (按位取反)、 ! (取非)、 - (负号运算符)、 ++ (自增)、 -- (自减) 双目: + (加)、 - (减)、 * (乘)、 / (除)、 % (取余) 三目: a > b ? true : false (当 a 大于 b 的时候,为 true,否则为 false;这整个运算符包括一个关系运算符(可以是“ > ”,“ < ”,“ != ”等等),一个“ ? ”,一个“ : ”,冒号前后需要有两个表达式、值或者是对象。) 赋值运算符 = += -= *= /= %= &= ^= |= <<= >>= 关系运算符 关系运算符用于比较两个数值之间的大小,其运算结果为一个逻辑类型(boolean布尔类型)的数值。 等于符号: == 不等于符号: != 大于符号: > 小于符号: < 大于等于符号: >= 小于等于符号: <= 逻辑运算符 与(&&) 对于&来说

常量、属性、方法、运算符

佐手、 提交于 2020-01-10 11:40:02
声明常量 Const 常量名 As 数据类型 = 存储在常量中的数据,如Const pai As Single = 3.14,定义一个Single类型的常量,名称为pai,常量中存储的数据为3.14。 对象、属性、方法   1、按层次引用,但如果book1是活动工作簿,可以写为Worksheets("sheet2").Range("A2"),如果“sheet2”也是活动工作表,还可写为Range("A2")即可。 2、对象和属性是相对而言,有些对象的属性,返回的是另一个对象,如Sheet1工作表的Range属性,返回的是单元格对象。但单元格本身也是一个对象,也有自己的属性,如字体、颜色等,单元格相对字体是对象,相对工作表是属性。 运算符 1、算术运算符:+(加), -(减), *(乘), /(除), \(两数相除得到的整数), ^(乘方), Mod(求余) 2、比较运算符:=(等于),<>(不等于),<(小于),>(大于),<=(小于等于),>=(大于等于),Is(比较两个对象的引用),Like(比较两个字符串是否匹配)  Range("A2") Like "李*" 3、文本运算符:+和&两种。   ①+可以做算数运算符,也可以用于文本连接,但&只能用于文本连接。   ②如果+两边的数据都是文本,则执行连接。如果两边的表达式包含数值(有一边为数值也执行算术运算),则执行算术运算

二、Python之运算符

混江龙づ霸主 提交于 2020-01-10 01:46:32
运算符分类:算数运算符、比较(关系)运算符、赋值运算符、位运算符、逻辑运算符、成员运算符、身份运算符 1. 算数运算符 运算符 描述 例子(x=10 y=3) 结果 + 加 - 两个对象相加,可以是字符串 print(x+y) 13 - 减 - 两个对象相乘 print(x-y) 7 * 乘 - 两个数相乘或是返回一个被重复若干次的字符串 print(x*y) 30 / 除 - x除以y print(x/y) 3 // 取整除 - 返回商的整数部分 print(x//y) 3 #10除以3取商 % 取模 - 返回除法的余数 print(x%y) 1 #10除以3取余数 ** 幂 - 返回x的y次幂 print(x**y) 1000 #10的三次方 2. 比较(关系)运算符 运算符 描述 例子(x=10 y=3) 结果 == 等于 - 比较对象是否相等 print(x == y) False != 不等于 - 比较两个对象是否不相等 print(x != y) True <> 不等于 - 比较两个对象是否不相等,这个运算符类似 != print(x <> y) True > 大于 - 返回x是否大于y print(x > y) True < 小于 - 返回x是否小于y print(x < y) False >= 大于等于 - 返回x是否大于等于y print(x >= y) True