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
网友评论