Erlang的运算符(比较运算符,数值运算符,移位运算符,逻辑运算符)_php技巧

Erlang的比较运算符

opDescription==等于/=不等于=<小于等于<小于>=大于等于>大于=:=精确的等于=/=精确的不等于等于和精确等于的区别:
如果要比较两个数,如果两个数之间是不同的类型,比如float和int那么,==操作会首先把两个数字转换成相同的相同类型。举例:

1> 1==1.0.
true
2> 1=:=1.0.
false

所以一般推荐用精确等于去比较

比较运算符的大小级别:

number < atom < reference < fun < port < pid < tuple < list < bit string

3> 1 > a.

false

opDescriptionArgument type+
number-
number+
number-
number*
number/浮点数除法,结果是浮点数numberbnot一元not运算符integerdiv整数除法,结果是整数integerrem求玉树integerbandand运算integerboror运算integerbxorxor异或运算integerbsl左移位操作integerbsr右移位操作integer
逻辑运算符

opDescriptionnot一元逻辑notand逻辑andor逻辑orxor逻辑xor原子true 和false表示逻辑的”真”和”假”
此外,逻辑运算符还包括一个orelse 和andalso

原始的or和and是不带”短路运算”操作的,而orelse和andalso是带短路运算操作的。

短路运算举例

Express1 and Express2

Express1 andalso Express2

如果Express1 为假,and会继续判断Express2,然后整体判定为假,而andalso”短路”操作,直接判定整个表达式为假,从效率上来说,andalso会高一些

复制代码 代码如下:

op Description
== 等于
/= 不等于
=< 小于等于
< 小于
>= 大于等于
> 大于
=:= 精确的等于
=/= 精确的不等于

Examples

复制代码 代码如下:

> 1==1.0.
true
> 1=:=1.0.
false
> 1 > a.
false

注: 一般语言的 小于等于 是"<=" 而erlang的 "=<" 这样写

时间: 2024-10-03 17:01:17

Erlang的运算符(比较运算符,数值运算符,移位运算符,逻辑运算符)_php技巧的相关文章

Java编程那些事儿26—移位运算符

4.5.2 移位运算符 移位运算符就是在二进制的基础上对数字进行平移.按照平移的方向和填充数字的规则分为三种:<<(左移).>>(带符号右移)和>>>(无符号右移). 在移位运算时,byte.short和char类型移位后的结果会变成int类型,对于byte.short.char和int进行移位时,规定实际移动的次数是移动次数和32的余数,也就是移位33次和移位1次得到的结果相同.移动long型的数值时,规定实际移动的次数是移动次数和64的余数,也就是移动66次和

JAVA移位运算符

问题描述 移位运算符就是在二进制的基础上对数字进行平移.按照平移的方向和填充数字的规则分为三种:<<(左移).>>(带符号右移)和>>>(无符号右移). 在移位运算时,byte.short和char类型移位后的结果会变成int类型,对于byte.short.char和int进行移位时,规定实际移动的次数是移动次数和32的余数,也就是移位33次和移位1次得到的结果相同.移动long型的数值时,规定实际移动的次数是移动次数和64的余数,也就是移动66次和移动2次得到的

java的移位运算符

移位运算符面向的运算对象也是二进制的"位".可单独用它们处理整数类型(主类型的一种).左移位运算符(<<)能将运算符左边的运算对象向左移动运算符右侧指定的位数(在低位补0)."有符号"右移位运算符(>>)则将运算符左边的运算对象向右移动运算符右侧指定的位数."有符号"右移位运算符使用了"符号扩展":若值为正,则在高位插入0:若值为负,则在高位插入1.Java也添加了一种"无符号"右移

java中的移位运算符心得总结_java

java中有三种移位运算符 <<      :     左移运算符,num << 1,相当于num乘以2 >>      :     右移运算符,num >> 1,相当于num除以2 >>>    :     无符号右移,忽略符号位,空位都以0补齐 下面来看看这些移位运算都是怎样使用的 复制代码 代码如下: /** *  */package com.b510.test; /** * @author Jone Hongten * @creat

java代码-java 中进制与移位运算符

问题描述 java 中进制与移位运算符 package Chapter_02; import java.util.Random; public class Control_12 { public static void main(String[] args) { System.out.println("对Int型数据进行移位的例子如下:n"); Random rand = new Random(); // 实例化一个Random对象 int a = rand.nextInt(); //

java中的移位运算符:&lt;&lt;,&gt;&gt;,&gt;&gt;&gt;总结(转)

java中有三种移位运算符 <<      :     左移运算符,num << 1,相当于num乘以2 >>      :     右移运算符,num >> 1,相当于num除以2 >>>    :     无符号右移,忽略符号位,空位都以0补齐 下面来看看这些移位运算都是怎样使用的 public class MoveOperation { public static void main(String[] args) { int numb

深入理解C++移位运算符_C 语言

关于逻辑移位.算术移位可参见迅雷深大笔试题部分.的一道题. 以前看到C++标准上说,移位运算符(<<.>>)出界时的行为并不确定: The behavior is undefined if the right operand is negative, orgreater than or equal to the length in bits of the promoted left operand. 我当时也没有深究过这个问题.前几天有个网友来信问起这件事,我才发现,这和Intel

用PHP中的 == 运算符进行字符串比较_php技巧

最近在Greg Beaver's的blog上发表的一篇新文章 comparing strings in PHP with the == operator 中提及了PHP的 == 运算符在对字符串进行比较时值得注意的问题. 在某些情况下,PHP会把类数值数据(如含有数字的字符串等)转换成数值处理,== 运算符就是其中之一.在使用 == 运算符对两个字符串进行松散比较时,PHP会把类数值的字符串转换为数值进行比较,下面的实验证实了这个结论:<?phpvar_dump('01' == 1);?> 以

c语言-C语言运算符重叠的问题C语言运算符重叠的问题

问题描述 C语言运算符重叠的问题C语言运算符重叠的问题 C语言&和&&的区别是什么,*和**的区别又是什么 解决方案 &是位运算,&&是逻辑运算. 比如说 a=1 b=2 &&出来是true,但是&出来是0,就是false是指针,也是乘法 *是二级指针 一些语言中**表示乘方,但是C语言不支持. 解决方案二: 补充楼上的 &:位运算, 比如a&b,a=1,b=2,二进制a 01,b 10,&就是二进制且运算,1