如何在Kotlin中将Long(64位)拆分为两个Integer(32位)?
我已经尝试过类似的操作,但似乎并没有这样做:
val id = Integer.MAX_VALUE.toLong() + 2000
val a = id.toInt()
val b = (id shr 32).toInt()
答案 0 :(得分:2)
一切正常。请注意,Integer.MAX_VALUE
是0x7FFFFFFF
,当您添加2000
时,它变成0x800007CF
,仍在32位以内,但是当解释为32时会溢出到负数范围位有符号整数。因此,a
是负数Int
,而b
是0