Kotlin中的UInt为何仍然包括负数值?

val i: Byte = -1

val m = i.toUInt() // 仍然是-1

val n = i.toUByte().toInt() // 这样才能变为正数 255

如上所示 负数直接转换为UInt仍然是负数 只有先转换为UByte再转换为整数才能去掉符号 比java中的Byte.toUnSignedInt()繁琐不说还难以理解为何无符号整型仍然允许符号存在


回答:

并不是 -1 啊:https://pl.kotl.in/urH12RJqc

/**

* You can edit, run, and share this code.

* play.kotlinlang.org

*/

fun main() {

val i: Byte = -1

val m = i.toUInt() // 仍然是-1

println(m)

}

4294967295

toUInt

Converts this Byte value to UInt.

If this value is positive, the resulting UInt value represents the same numerical value as this Byte.

The least significant 8 bits of the resulting UInt value are the same as the bits of this Byte value, whereas the most significant 24 bits are filled with the sign bit of this value.

以上是 Kotlin中的UInt为何仍然包括负数值? 的全部内容, 来源链接: utcz.com/p/944892.html

回到顶部