每天學(xué)一點(diǎn) Kotlin ---- 基本類型:數(shù)字類型

----《第一季Kotlin崛起:次世代Android開(kāi)發(fā) 》學(xué)習(xí)筆記

總目錄:每天學(xué)一點(diǎn) Kotlin ---- 目錄
上一篇:每天學(xué)一點(diǎn) Kotlin ---- 常量和變量
下一篇:每天學(xué)一點(diǎn) Kotlin ---- 基本類型:布爾類型

1. 數(shù)字類型

Long           長(zhǎng)整數(shù)         64位
Int            整數(shù)           32位
Short          短整數(shù)         16位
Byte           字節(jié)           8位
Double         雙精度小數(shù)     64位
Float          浮點(diǎn)數(shù)         32位

比較難受的是,類型的首字母是大寫(xiě)的,而且聲明變量或常量也和 C/Java 等不一樣...

2. 聲明和初始化

2.1 變量的聲明和初始化

fun main() {
    var age1 : Int = 3
    var age2 = 4;  // Kotlin 會(huì)自動(dòng)推斷類型,所以也可以省略類型的關(guān)鍵字

    var age3: Int
    age3 = 10

    // var age4;  // 編輯器直接報(bào)錯(cuò)了
    // age4 = 20
}

2.2 Kotlin 默認(rèn)的整數(shù)類型是 Int,其他的數(shù)字類型定義的寫(xiě)法為:

package com.cakes.test

fun main() {

    val 一個(gè)Int = 123
    val 一個(gè)Long = 123L
    val 一個(gè)Double = 123.56
    val 一個(gè)Float = 123.56F
    val 一個(gè)八進(jìn)制 = 0xACF
    val 一個(gè)二進(jìn)制 = 0b01010101

    println(一個(gè)Int)
    println(一個(gè)Long)
    println(一個(gè)Double)
    println(一個(gè)Float)
    println(一個(gè)八進(jìn)制)
    println(一個(gè)二進(jìn)制)
}

打印結(jié)果:

123
123
123.56
123.56
2767
85

3. 數(shù)字范圍

Kotlin 不支持自動(dòng)擴(kuò)展數(shù)字范圍,轉(zhuǎn)換必須手動(dòng)進(jìn)行。每一種數(shù)字都有一個(gè)轉(zhuǎn)換成其他數(shù)字類型的方法。例如:

   val num = 123
   val long = num.toLong()
   val short = num.toShort()
   val double = num.toDouble()
   val char = num.toChar()
   val byte = num.toByte()

在這些數(shù)字類型中有一整套的轉(zhuǎn)換函數(shù)由于類型相互轉(zhuǎn)換: toByte(), toShort(), toInt(), toLong(), toFloat(), toDouble(), toChar()

4. 二進(jìn)制運(yùn)算

Kotlin 也支持對(duì)于二進(jìn)制的運(yùn)算:左移、右移、邏輯與、邏輯或、異或、取反等運(yùn)算,和Java中不同的是,這些不是內(nèi)建運(yùn)算符,而是用中綴函數(shù)類代替的。舉個(gè)栗子:

println("1 左移 2: " + (1 shl 2))
println("1 右移 2: " + (1 shr 2))
println("1 邏輯與 2: " + (1 and 2))
println("1 邏輯或 2: " + (1 or 2))
println("1 異或 2: " + (1 xor 2))
println("1 取反: " + 1.inv())

打印結(jié)果:

1 左移 2: 4
1 右移 2: 0
1 邏輯與 2: 0
1 邏輯或 2: 3
1 異或 2: 3
1 取反: -2

5. 浮點(diǎn)數(shù)(小數(shù))

5.1 Kotlin 默認(rèn)的浮點(diǎn)類型是 Double

5.2 可以用 Double 類型的 toInt() 方法把小數(shù)截?cái)酁檎麛?shù),注意:這里不是四舍五入,而是直接把小數(shù)點(diǎn)后的部分丟棄。

5.3 在數(shù)字運(yùn)算中,對(duì)于常用的加、減、乘、除、取余來(lái)說(shuō),如果其中有一個(gè)是小數(shù)的話,那么整體的計(jì)算結(jié)果也是小數(shù)(Double)

5.4 對(duì)小數(shù)也是可以取余數(shù)的

fun main(args: Array<String>) {

    println("學(xué)習(xí)浮點(diǎn)數(shù)")
    var dNum1 = 10.4
    var iNum1 = dNum1.toInt()

    var dNum2 = 10.5
    var iNum2 = dNum2.toInt()
    println("iNum1 = " + iNum1 + ", iNum2 = " + iNum2)

    println("12 + 4.0 = " + (12 + 4.0))
    println("12 + 4 = " + (12 + 4))
    println("12 - 4.0 = " + (12 - 4.0))
    println("12 - 4 = " + (12 - 4))
    println("12 * 4.0 = " + (12 * 4.0))
    println("12 * 4 = " + (12 * 4))
    println("12 / 4.0 = " + (12 / 4.0))
    println("12 / 4 = " + (12 / 4))
    println("12 % 4.0 = " + (12 % 4.0))
    println("12 % 4 = " + (12 % 4))
    println("12 % 4.1 = " + (12 % 4.1))
    println("12 % 4 = " + (12 % 4))

}

打印結(jié)果:

學(xué)習(xí)浮點(diǎn)數(shù)
iNum1 = 10, iNum2 = 10
12 + 4.0 = 16.0
12 + 4 = 16
12 - 4.0 = 8.0
12 - 4 = 8
12 * 4.0 = 48.0
12 * 4 = 48
12 / 4.0 = 3.0
12 / 4 = 3
12 % 4.0 = 0.0
12 % 4 = 0
12 % 4.1 = 3.8000000000000007
12 % 4 = 0
相關(guān)代碼:https://gitee.com/fzq.com/test-demo
最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請(qǐng)結(jié)合常識(shí)與多方信息審慎甄別。
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡(jiǎn)書(shū)系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容