Erik
08/15/2021, 8:38 AMkotlin
and then at the REPL prompt I type (-1).toUInt()
or 1u - 2u
, then the result is kotlin.UInt = -1
. Is that expected? kotlin.UInt
ranges from 0 to 2^32-1, but can it be rendered as negative too somehow? Or is kotlin.UInt = -1
actually equal to 2^32-1
?Erik
08/15/2021, 8:39 AM>>> UInt.MAX_VALUE
res1: kotlin.UInt = -1
>>> UInt.MIN_VALUE
res2: kotlin.UInt = 0
Erik
08/15/2021, 8:39 AMErik
08/15/2021, 8:41 AMInt.MAX_VALUE
is the maximum value being printed:
>>> UInt.MAX_VALUE / 2u
res4: kotlin.UInt = 2147483647
>>> UInt.MAX_VALUE / 2u + 1u
res5: kotlin.UInt = -2147483648
ephemient
08/15/2021, 9:08 AMErik
08/15/2021, 9:10 AMtoString
just converts a UInt
to a Long
Erik
08/15/2021, 9:11 AMUInt
is based on an Int
, which can simply hold value -1
, so that is what is printedErik
08/15/2021, 9:12 AM>>> (1u - 2u).toString()
res0: kotlin.String = 4294967295
Erik
08/15/2021, 9:13 AMprintln
somewhere...Erik
08/15/2021, 9:14 AMprintln
because that also prints the correct valueErik
08/15/2021, 9:14 AMtoString
Erik
08/15/2021, 9:14 AM>>> UInt.MAX_VALUE.toString()
res1: kotlin.String = 4294967295
>>> UInt.MAX_VALUE
res2: kotlin.UInt = -1
>>> println(UInt.MAX_VALUE)
4294967295
andylamax
08/15/2021, 9:24 AM