⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 formulas_2__operators.html

📁 语音信号处理软件praat教程:这是一部入门教程
💻 HTML
字号:
<html><head><meta name="robots" content="index,follow">
<title>算式 2. 运算符</title></head><body bgcolor="#FFFFFF">

<table border=0 cellpadding=0 cellspacing=0><tr><td bgcolor="#CCCC00"><table border=4 cellpadding=9><tr><td align=middle bgcolor="#000000"><font face="Palatino,Times" size=6 color="#999900"><b>
算式 2. 运算符
</b></font></table></table>
<p>
本文将详述可以在算式中使用的数值与逻辑运算符。运算符结算的顺序同普遍为编程语言所采用的顺序相一致。可以用圆括号强制改变优先顺序。</p>
<p>
优先级最高的运算符是<b>负号</b>(-)和<b>幂运算符</b>(^):</p>
<code>
--6 -&gt; 6<br></code>
<code>
2^6 -&gt; 64<br></code>
<p>
负号跟幂运算符之间,按从右向左的结合顺序结算:</p>
<code>
2^-6 -&gt; 0.015625<br></code>
<code>
-(1+1)^6 -&gt; -64<br></code>
<code>
4^3^2 -&gt; 4^9 -&gt; 262144<br></code>
<p>
注意:改变中间空格的多少有无,不会改变算式的意义:</p>
<code>
4^3 ^ 2 -&gt; 262144<br></code>
<p>
要改变结算顺序,必须使用圆括号:</p>
<code>
(4 ^ 3) ^ 2 -&gt; 4096<br></code>
<p>
不允许使用像下面这样的结构,因为无法断定到底是负数的幂还是幂的相反数:</p>
<code>
-2^6 -&gt; ?<br></code>
<p>
请改用如下方式:</p>
<code>
(-2)^6 -&gt; 64<br></code>
<code>
-(2^6) -&gt; -64<br></code>
<code>
-(2)^6 -&gt; -64<br></code>
<p>
仅次于最高优先级的运算符是<b>乘号</b>(*)和<b>除号</b>(/),按从左向右的结合顺序结算:</p>
<code>
1/4*5 -&gt; 1.25        (从左向右的结合顺序)<br></code>
<code>
1 / 4*5 -&gt; 1.25      (有空格也一样)<br></code>
<code>
1 / (4*5) -&gt; 0.05    (利用圆括号改变结算顺序)<br></code>
<code>
3 * 2 ^ 4 -&gt; 48      (幂运算较乘法优先)<br></code>
<code>
3*2 ^ 4 -&gt; 48        (这里的空格不但不起作用,还会误导人)<br></code>
<code>
(3 * 2) ^ 4 -&gt; 1296  (利用圆括号改变结算顺序)<br></code>
<p>
<b>整除</b>运算符(<b>div</b>和<b>mod</b>)跟*与/处于同一优先级,且同样按从左向右的结合顺序结算:</p>
<code>
54 div 5 -&gt; 10       (求整数商)<br></code>
<code>
54 mod 5 -&gt; 4        (求余数)<br></code>
<code>
54.3 div 5.1 -&gt; 10   (实数型也可以求整数商)<br></code>
<code>
54.3 mod 5.1 -&gt; 3.3  (或者求余数)<br></code>
<code>
-54 div 5 -&gt; -11     (求整数商;做除法之前先取反)<br></code>
<code>
-54 mod 5 -&gt; 1       (或者求余数)<br></code>
<code>
-(54 div 5) -&gt; -10   (利用圆括号改变结算顺序)<br></code>
<code>
-(54 mod 5) -&gt; -4<br></code>
<code>
3 * 18 div 5 -&gt; 10   (从左向右的结合顺序)<br></code>
<code>
3 * (18 div 5) -&gt; 9<br></code>
<code>
3 * 18 mod 5 -&gt; 4<br></code>
<code>
3 * (18 mod 5) -&gt; 9<br></code>
<code>
54 div 5 * 3 -&gt; 30   (从左向右的结合顺序)<br></code>
<code>
54 div (5 * 3) -&gt; 3<br></code>
<code>
54 mod 5 * 3 -&gt; 12<br></code>
<code>
54 mod (5 * 3) -&gt; 9<br></code>
<p>
往下优先级更低的是<b>加号</b>(+)和<b>减号</b>(-),按从左向右的结合顺序结算:</p>
<code>
3 - 8 + 7 -&gt; 2       (从左向右的结合顺序)<br></code>
<code>
3 - (8 + 7) -&gt; -12   (利用圆括号改变结算顺序)<br></code>
<code>
3 + 8 * 7 -&gt; 59      (先做乘法,后做加法)<br></code>
<code>
(3 + 8) * 7 -&gt; 77    (利用圆括号改变结算顺序)<br></code>
<code>
3 + - 2 ^ 4 -&gt; -13   (求幂,取反,相加)<br></code>
<code>
3 + 5 / 2 + 3 -&gt; 8.5<br></code>
<code>
(3 + 5) / (2 + 3) -&gt; 1.6<br></code>
<p>
往下优先级更低的是<b>比较</b>运算符(=  &lt;&gt;  &lt;  &gt;  &lt;=  &gt;=)。这些运算符得到的结果只有0(<i>假</i>)和1(<i>真</i>)两种:</p>
<code>
5 + 6 = 10 -&gt; 0      (等于)<br></code>
<code>
5 + 6 = 11 -&gt; 1<br></code>
<code>
5 + 6 &lt;&gt; 10 -&gt; 1     (不等于)<br></code>
<code>
5 + 6 &lt;&gt; 11 -&gt; 0<br></code>
<code>
5 + 6 &lt; 10 -&gt; 0      (小于)<br></code>
<code>
5 + 6 &lt; 11 -&gt; 0<br></code>
<code>
5 + 6 &gt; 10 -&gt; 1      (大于)<br></code>
<code>
5 + 6 &gt; 11 -&gt; 0<br></code>
<code>
5 + 6 &lt;= 10 -&gt; 0     (小于或等于)<br></code>
<code>
5 + 6 &lt;= 11 -&gt; 1<br></code>
<code>
5 + 6 &gt;= 10 -&gt; 1     (大于或等于)<br></code>
<code>
5 + 6 &gt;= 11 -&gt; 1<br></code>
<p>
比较运算符主要在<b>if</b>、<b>while</b>和<b>until</b>结构里作为条件使用。</p>
<p>
优先级最低的运算符是<b>逻辑</b>运算符(<b>not</b>、<b>and</b>和<b>or</b>),其中<b>not</b>优先级最高而<b>or</b>最低:</p>
<code>
not 5 + 6 = 10 -&gt; 1<br></code>
<code>
x &gt; 5 and x &lt; 10               (x是否在5和10之间?)<br></code>
<code>
not x &lt;= 5 and not x &gt;= 10     (同上)<br></code>
<code>
not (x &lt;= 5 or x &gt;= 10)        (同上)<br></code>
<h3>
字符串比较</h3>
<dl>
<dt>
<b>a$ = b$</b>
<dd>
如果字符串完全相同,结果为<i>真</i>(= 1),否则为<i>假</i>(= 0)。
<dt>
<b>a$ &lt;&gt; b$</b>
<dd>
如果字符串不完全相同,结果为<i>真</i>,否则为<i>假</i>。
<dt>
<b>a$ &lt; b$</b>
<dd>
按ASCII(美国信息交换标准码)排序,如果字符串<i>a$</i>在字符串<i>b$</i>之前,结果为<i>真</i>。由此可得"ha" &lt; "hal"以及"ha" &lt; "ja"为真。但"ha" &lt; "JA"为假,因为在ASCII顺序中,所有大写字母排在所有小写字母之前。
<dt>
<b>a$ &gt; b$</b>
<dd>
按ASCII排序,<i>a$</i>在<i>b$</i>之后,结果为<i>真</i>。
<dt>
<b>a$ &lt;= b$</b>
<dd>
按ASCII排序,如果字符串<i>a$</i>在字符串<i>b$</i>之前,或者两者完全相同,结果为<i>真</i>。
<dt>
<b>a$ &gt;= b$</b>
<dd>
按ASCII排序,<i>a$</i>在<i>b$</i>之后,或者两者完全相同,结果为<i>真</i>。
</dl>
<h3>
字符串连接与分割</h3>
<dl>
<dt>
<b>a$ + b$</b>
<dd>
连接两个字符串。比如运行
</dl>
<code>&nbsp;&nbsp;&nbsp;
text$ = "hallo" + "dag"<br></code>
<dl>
<dd>
之后,变量<i>text$</i>将包含字符串"hallodag"。
<dt>
<b>a$ - b$</b>
<dd>
将第2个字符串从第1个字符串的末尾减去。比如运行
</dl>
<code>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
soundFileName$ = "hallo.aifc"<br></code>
<code>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
textgridFileName$ = soundFileName$ - ".aifc" + ".TextGrid"<br></code>
<dl>
<dd>
之后,变量<i>textgridFileName$</i>将包含字符串"hallo.TextGrid"。如果第1个字符串<i>a$</i>并不以字符串<i>b$</i>结尾,则相减的结果仍然是字符串<i>a$</i>。
</dl>
<h3>指向本页的链接</h3>
<ul>
<li><a href="Formulas.html">算式</a>
</ul>
<hr>
<address>
	<p>&copy; ppgb, February 11, 2003</p>
	<p>&copy; 翻译:徐清白,2005年02月06日</p>
</address>
</body>
</html>

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -