每天学一点 Kotlin ---- 基本类型:数字类型

2021-09-27  本文已影响0人  冯可乐同学

----《第一季Kotlin崛起:次世代Android开发 》学习笔记

总目录:每天学一点 Kotlin ---- 目录
上一篇:每天学一点 Kotlin ---- 常量和变量
下一篇:每天学一点 Kotlin ---- 基本类型:布尔类型

1. 数字类型

Long           长整数         64位
Int            整数           32位
Short          短整数         16位
Byte           字节           8位
Double         双精度小数     64位
Float          浮点数         32位

比较难受的是,类型的首字母是大写的,而且声明变量或常量也和 C/Java 等不一样...

2. 声明和初始化

2.1 变量的声明和初始化

fun main() {
    var age1 : Int = 3
    var age2 = 4;  // Kotlin 会自动推断类型,所以也可以省略类型的关键字

    var age3: Int
    age3 = 10

    // var age4;  // 编辑器直接报错了
    // age4 = 20
}

2.2 Kotlin 默认的整数类型是 Int,其他的数字类型定义的写法为:

package com.cakes.test

fun main() {

    val 一个Int = 123
    val 一个Long = 123L
    val 一个Double = 123.56
    val 一个Float = 123.56F
    val 一个八进制 = 0xACF
    val 一个二进制 = 0b01010101

    println(一个Int)
    println(一个Long)
    println(一个Double)
    println(一个Float)
    println(一个八进制)
    println(一个二进制)
}

打印结果:

123
123
123.56
123.56
2767
85

3. 数字范围

Kotlin 不支持自动扩展数字范围,转换必须手动进行。每一种数字都有一个转换成其他数字类型的方法。例如:

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

在这些数字类型中有一整套的转换函数由于类型相互转换: toByte(), toShort(), toInt(), toLong(), toFloat(), toDouble(), toChar()

4. 二进制运算

Kotlin 也支持对于二进制的运算:左移、右移、逻辑与、逻辑或、异或、取反等运算,和Java中不同的是,这些不是内建运算符,而是用中缀函数类代替的。举个栗子:

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())

打印结果:

1 左移 2: 4
1 右移 2: 0
1 逻辑与 2: 0
1 逻辑或 2: 3
1 异或 2: 3
1 取反: -2

5. 浮点数(小数)

5.1 Kotlin 默认的浮点类型是 Double

5.2 可以用 Double 类型的 toInt() 方法把小数截断为整数,注意:这里不是四舍五入,而是直接把小数点后的部分丢弃。

5.3 在数字运算中,对于常用的加、减、乘、除、取余来说,如果其中有一个是小数的话,那么整体的计算结果也是小数(Double)

5.4 对小数也是可以取余数的

fun main(args: Array<String>) {

    println("学习浮点数")
    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))

}

打印结果:

学习浮点数
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
相关代码:https://gitee.com/fzq.com/test-demo
上一篇下一篇

猜你喜欢

热点阅读