2019-08-12 kotlin 基础整理 数据类型

WechatIMG83.png
Kotlin中的数字的内置类型(接近与Java),其关键字为:
  • Byte=> 字节 => 8位
  • Short => 短整型 => 16位
  • Int => 整型 => 32位
  • Long => 长整型 => 64位
  • Float => 浮点型 => 32位
  • Double => 双精度浮点型 => 64位
进制数
  • 二进制数
  • 八进制数(Kotlin不支持)
  • 十进制数
  • 十六进制数
装箱 拆箱
  • 在Kotlin中,存在数字的装箱,但是不存在拆箱。因为Kotlin是没有基本数据类型的,Kotlin是万般皆对象的原则。故不存在和Java中的类似int是数据类型,Integer是整型的引用类型
转换
  • 显式转换 :较小的类型不会被隐式转换为更大的类型,故而系统提供了显式转换
    toByte() => 转换为字节型
    toShort() => 转换为短整型
    toInt() => 转换为整型
    toLong() => 转换为长整型
    toFloat() => 转换为浮点型
    toDouble() => 转换为双精度浮点型
    toChar() => 转换为字符型
    toString() => 转换为字符串型
  • 隐式转换 :类型是从上下文推断出来的,即算术运算则被重载为适当的转换
位运算符
  • shl(bits) => 有符号向左移 (类似Java的<<)
  • shr(bits) => 有符号向右移 (类似Java的>>)
  • ushr(bits) => 无符号向右移 (类似Java的>>>)
  • and(bits) => 位运算符 and (同Java中的按位与)
  • or(bits) => 位运算符 or (同Java中的按位或)
  • xor(bits) => 位运算符 xor (同Java中的按位异或)
  • inv() => 位运算符 按位取反 (同Java中的按位取反)
异或也叫半加运算,其运算法则相当于不带进位的二进制加法:二进制下用1表示真,0表示假,则异或的运算法则为:0⊕0=0,1⊕0=1,0⊕1=1,1⊕1=0(同为0,异为1),这些法则与加法是相同的,只是不带进位
var operaNum: Int = 4
运算:
var shlOperaNum = operaNum shl(2)
var shrOperaNum = operaNum shr(2)
var ushrOperaNum = operaNum ushr(2)
var andOperaNum = operaNum and(2)
var orOperaNum = operaNum or(2)
var xorOperaNum = operaNum xor(2)
var invOperaNum = operaNum.inv()

结果:
shlOperaNum => 16 
shrOperaNum => 1 
ushrOperaNum => 1 
andOperaNum => 0 
orOperaNum => 6 
xorOperaNum => 6 
invOperaNum => -5

你可能感兴趣的:(2019-08-12 kotlin 基础整理 数据类型)