julia-整數(第3講)

整數   2020/6/11
================================================================================
1.1.整數類型:Int8,Int16,Int32,Int64,Int128,UInt8,UInt16,UInt32,UInt64,UInt128
1.2.整數構造:
    a=1;1,Int64(1),UInt64(a)         #常量變量構造:(1, 1, 0x0000000000000001)
    0b10,0o10,0x1                        # 2,8,16進制構造:(0x02, 0x08, 0x01)  

    typeof(1)                                  # 默認類型32/64-bit system: Int32/Int64
    typeof(3000000000)                # 大整數文本32-bit or 64-bit system:Int64 

    typemin(Int32), typemax(Int32)# 基礎類型最值 (-2147483648,2147483647)
    Sys.WORD_SIZE                    # 內部變量指示系統是32/64位 #64-bit system:64
    Int,UInt                                      # 32/64-bit system:Int32(UInt32)/Int64(UInt64)
    
================================================================================    
2.數學運算:
    1). 算數運算是一種同餘算術;要檢查溢出或用BigInt類型;Julia使用本機整數運算便於優化
    2). 整數+,-,*,指數運算自動類型提升到Int或UInt類型(/、求餘、位運算則類型不提升)
    3). 支持四則運算及和分數,float,複數運算
    
2.1.四則運算:
    x = typemax(Int64) # 9223372036854775807
    x + 1                       # -9223372036854775808 溢出
 
    0b1011 & 0b1101                #0x09   
    bitstring(0b1011 & 0b1101 )#"00001001"
    0b1011 && 0b1101              #TypeError
    true&&false                          #false 

    整數除法錯誤:
    div(typemin(Int),-1)     #DivideError
    div(2,0)                       #DivideError 

    整數除法:div(8,3)==2
   整數餘數:rem(8,3))==8%3== 2 

    任意整數計算:
    # 原始類型和BigInt之間類型不自動提升必明確說明 

    x1=BigInt(typemax(Int64)) + 1
    x2=big"1234567890" + 1
    x3= parse(BigInt, "1234567890") + 1 

    x=x1+x2+x3    #9223372039323911590
    typeof(x)          #BigInt 

    y1,y2,y=1,2,y1+y2
    typeof(y)          #Int64
    typeof(x+y)      #BigInt
===================================================================================== 

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章