欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

Julia-数学运算(第6讲)

程序员文章站 2022-05-28 16:53:47
...


Julia 数学运算  2020/5/30
=============================================================================
1.1.算术运算符
    # 下面的算术运算符适用于所有的基本数值类型:类型自动提升
    +(正);-(负);!x(非Bool);+;-;*;div(整除);/(浮点除);x \ y (反除 = y / x)
    x ^ y )乘方:x 的 y 次幂);x % y (取余 = rem(x, y))

1.2.位运算符 
    # 适用于所有整数类型:
    ~x     位取反;  x & y 位与;  x | y 位或;  x ⊻ y ;位异或 xor(x,y)
    x >>> y 逻辑右移位(高位补 0); x >> y 算术右移位(复制原高位); x << y 逻辑/算术左移位

1.3.复合赋值运算符
    # 二元算术和位运算都有对应的复合赋值运算符
    +=  -=  *=  /=  \=  %=  ^=  &=  |=  ⊻ =  >>>=  >>=  <<=

1.4.数值比较
    # 所有基础数值类型都可以使用比较运算符
    # 整数是按位比较的;浮点数是IEEE754标准;有限数按照正常方式做比较。
    # 正零等于负零;Inf/-Inf 等于它本身,并且大/小于所有数, 除NaN
    # NaN 不等于、不大于、不小于任何数,包括它本身。

    ==  !=(≠)  <  <= (≤) >  >= (≥)
    
 =============================================================================   
1.5.链式比较
    # &&用于标量比较,&用于元素数组比较,使它们可以处理数组。

    1 < 2 <= 2 < 3 == 3 > 2 >= 1 == 1 < 3 != 5# true

实例1:注意链式比较的比较顺序:
    v(x) = (println(x); x)
    v(1) < v(2) <= v(3)#中间值只计算一次; v(1) < v(2) && v(2) <= v(3) 计算2次
    # 2                        #链式比较的计算顺序是不确定的
    # 1                        #不要在链式比较中使用带副作用(比如打印)的表达式
    # 3                        #如果需要使用副作用表达式,推荐使用短路 && 运算符
    # true

    v(1) > v(2) <= v(3)
    # 2
    # 1
    # false

实例2:操作符 .< 是特别针对数组
    A,B=[1,4,7],[2,3,8]
    0 .< A .< B       #只有当 A 和 B 有着相同的大小时, A .< B 才是合法
    # 3-element BitArray{1}:结果对应布尔数组,满足条件元素返回 true 
    # 1
    # 0
    # 1

=============================================================================
2.实例:

实例1:位运算
    ~123,~UInt32(123)                   # (-124, 0xffffffffffffff84)
    123 & 234,123 | 234,123 ⊻ 234# (106, 251, 145)

实例2:
    x += 3                              # 赋值运算符:x = x + 3 
    1 == 1.0,1 != 2                     # 比较: (true, true)

    NaN == NaN,NaN != NaN,NaN < NaN,NaN > NaN # (false, true, false, false)
    [1 NaN] == [1 NaN]                  # false

特殊值测试函数:
    isequal(x, y) #x 是否等价于 y
    isfinite(x)   #x 是否为有限的数
    isinf(x)      #x 是否为无限的数
    isnan(x)      # x 是否不是数

    isequal(NaN,NaN),isequal(NaN,NaN32),isequal([1 NaN], [1 NaN])#认为 NaN 等于它本身:(true, true, true)
    -0.0 == 0.0,isequal(-0.0, 0.0)                                                          #区分有符号的零:(true, false)
=============================================================================

3.运算优先级--高至低:

    语法 . 跟随 ::
    幂 ^ 和 .^ 等效
    分数 // 和 .//
    乘除 / % & \和 .* ./ .% .\
    位移 << >> >>> 和 .<< .>> .>>>
    加减 + - | $ 和 .+ .-
    语法 : .. 跟随于 |>
    比较 > < >= <= == === != !== <: 和 .> .< .>= .<= .== .!=
    逻辑 && 跟随于 || 跟随于 ?
    赋值 = += -= *= /= //= \= ^= %= \|= &= $= <<= >>= >>>= 及 .+= .-= .*= ./= .//= .\= .^= .%=

===============================================================================

 

相关标签: julia