Kotlin中的shr()和ushr()命名函数之间有什么区别
Kotlin语言中a.shr(b)和a.ushr(b)函数的差异。使用这两个函数时,我得到的输出相同,因此请帮助了解这些函数之间的差异Kotlin中的shr()和ushr()命名函数之间有什么区别,kotlin,Kotlin,Kotlin语言中a.shr(b)和a.ushr(b)函数的差异。使用这两个函数时,我得到的输出相同,因此请帮助了解这些函数之间的差异 shr将位向右移动 ushr也会右移,但最左边的位将填充为零 如果只对正值进行位移位,则没有区别。如果你也在负值上做,那就有很大的区别了 Int Binary -63532 11111111111111110000000000000100 -63532 u
shr
将位向右移动ushr
也会右移,但最左边的位将填充为零 Int Binary
-63532 11111111111111110000000000000100
-63532 ushr 1 2147450882 01111111111111111000000000000010
-63532 shr 1 -32766 11111111111111111000000000000010
^
|
Difference
在这种情况下,
ushr
将翻转最左边的位,因此现在是正值。尝试使用负数,它们不一样。shr应该保留2对负数的称赞,而ushr不应该。您要寻找的答案是函数名:shr
=右移
,ushr
=无符号右移
。